+++ /dev/null
-//-----------------------------------------------------------------------------
-// boost aligned_storage.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2002-2003
-// Eric Friedman, Itay Maman
-//
-// Distributed under the 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_ALIGNED_STORAGE_HPP
-#define BOOST_ALIGNED_STORAGE_HPP
-
-#include <cstddef> // for std::size_t
-
-#include "boost/config.hpp"
-#include "boost/detail/workaround.hpp"
-#include "boost/type_traits/alignment_of.hpp"
-#include "boost/type_traits/type_with_alignment.hpp"
-#include "boost/type_traits/is_pod.hpp"
-
-#include "boost/mpl/eval_if.hpp"
-#include "boost/mpl/identity.hpp"
-
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail { namespace aligned_storage {
-
-BOOST_STATIC_CONSTANT(
- std::size_t
- , alignment_of_max_align = ::boost::alignment_of<max_align>::value
- );
-
-//
-// To be TR1 conforming this must be a POD type:
-//
-template <
- std::size_t size_
- , std::size_t alignment_
->
-struct aligned_storage_imp
-{
- union data_t
- {
- char buf[size_];
-
- typename mpl::eval_if_c<
- alignment_ == std::size_t(-1)
- , mpl::identity<detail::max_align>
- , type_with_alignment<alignment_>
- >::type align_;
- } data_;
-};
-
-}} // namespace detail::aligned_storage
-
-template <
- std::size_t size_
- , std::size_t alignment_ = std::size_t(-1)
->
-class aligned_storage
-{
-private: // representation
-
- detail::aligned_storage::aligned_storage_imp<size_, alignment_> data_;
-
-public: // constants
-
- typedef detail::aligned_storage::aligned_storage_imp<size_, alignment_> type;
-
- BOOST_STATIC_CONSTANT(
- std::size_t
- , size = size_
- );
- BOOST_STATIC_CONSTANT(
- std::size_t
- , alignment = (
- alignment_ == std::size_t(-1)
- ? ::boost::detail::aligned_storage::alignment_of_max_align
- : alignment_
- )
- );
-
-#if defined(__GNUC__) &&\
- (__GNUC__ > 3) ||\
- (__GNUC__ == 3 && (__GNUC_MINOR__ > 2 ||\
- (__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >=3)))
-
-private: // noncopyable
-
- aligned_storage(const aligned_storage&);
- aligned_storage& operator=(const aligned_storage&);
-
-#else // gcc less than 3.2.3
-
-public: // _should_ be noncopyable, but GCC compiler emits error
-
- aligned_storage(const aligned_storage&);
- aligned_storage& operator=(const aligned_storage&);
-
-#endif // gcc < 3.2.3 workaround
-
-public: // structors
-
- aligned_storage()
- {
- }
-
- ~aligned_storage()
- {
- }
-
-public: // accessors
-
- void* address()
- {
- return this;
- }
-
-#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-
- const void* address() const
- {
- return this;
- }
-
-#else // MSVC6
-
- const void* address() const;
-
-#endif // MSVC6 workaround
-
-};
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-
-// MSVC6 seems not to like inline functions with const void* returns, so we
-// declare the following here:
-
-template <std::size_t S, std::size_t A>
-const void* aligned_storage<S,A>::address() const
-{
- return const_cast< aligned_storage<S,A>* >(this)->address();
-}
-
-#endif // MSVC6 workaround
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//
-// Make sure that is_pod recognises aligned_storage<>::type
-// as a POD (Note that aligned_storage<> itself is not a POD):
-//
-template <std::size_t size_, std::size_t alignment_>
-struct is_pod<boost::detail::aligned_storage::aligned_storage_imp<size_,alignment_> >
- BOOST_TT_AUX_BOOL_C_BASE(true)
-{
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true)
-};
-#endif
-
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_ALIGNED_STORAGE_HPP
+++ /dev/null
-// See http://www.boost.org/libs/any for Documentation.
-
-#ifndef BOOST_ANY_INCLUDED
-#define BOOST_ANY_INCLUDED
-
-// what: variant type boost::any
-// who: contributed by Kevlin Henney,
-// with features contributed and bugs found by
-// Ed Brey, Mark Rodgers, Peter Dimov, and James Curran
-// when: July 2001
-// where: tested with BCC 5.5, MSVC 6.0, and g++ 2.95
-
-#include <algorithm>
-#include <typeinfo>
-
-#include "boost/config.hpp"
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/static_assert.hpp>
-
-namespace boost
-{
- class any
- {
- public: // structors
-
- any()
- : content(0)
- {
- }
-
- template<typename ValueType>
- any(const ValueType & value)
- : content(new holder<ValueType>(value))
- {
- }
-
- any(const any & other)
- : content(other.content ? other.content->clone() : 0)
- {
- }
-
- ~any()
- {
- delete content;
- }
-
- public: // modifiers
-
- any & swap(any & rhs)
- {
- std::swap(content, rhs.content);
- return *this;
- }
-
- template<typename ValueType>
- any & operator=(const ValueType & rhs)
- {
- any(rhs).swap(*this);
- return *this;
- }
-
- any & operator=(const any & rhs)
- {
- any(rhs).swap(*this);
- return *this;
- }
-
- public: // queries
-
- bool empty() const
- {
- return !content;
- }
-
- const std::type_info & type() const
- {
- return content ? content->type() : typeid(void);
- }
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- private: // types
-#else
- public: // types (public so any_cast can be non-friend)
-#endif
-
- class placeholder
- {
- public: // structors
-
- virtual ~placeholder()
- {
- }
-
- public: // queries
-
- virtual const std::type_info & type() const = 0;
-
- virtual placeholder * clone() const = 0;
-
- };
-
- template<typename ValueType>
- class holder : public placeholder
- {
- public: // structors
-
- holder(const ValueType & value)
- : held(value)
- {
- }
-
- public: // queries
-
- virtual const std::type_info & type() const
- {
- return typeid(ValueType);
- }
-
- virtual placeholder * clone() const
- {
- return new holder(held);
- }
-
- public: // representation
-
- ValueType held;
-
- };
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
- private: // representation
-
- template<typename ValueType>
- friend ValueType * any_cast(any *);
-
- template<typename ValueType>
- friend ValueType * unsafe_any_cast(any *);
-
-#else
-
- public: // representation (public so any_cast can be non-friend)
-
-#endif
-
- placeholder * content;
-
- };
-
- class bad_any_cast : public std::bad_cast
- {
- public:
- virtual const char * what() const throw()
- {
- return "boost::bad_any_cast: "
- "failed conversion using boost::any_cast";
- }
- };
-
- template<typename ValueType>
- ValueType * any_cast(any * operand)
- {
- return operand && operand->type() == typeid(ValueType)
- ? &static_cast<any::holder<ValueType> *>(operand->content)->held
- : 0;
- }
-
- template<typename ValueType>
- const ValueType * any_cast(const any * operand)
- {
- return any_cast<ValueType>(const_cast<any *>(operand));
- }
-
- template<typename ValueType>
- ValueType any_cast(const any & operand)
- {
- typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // If 'nonref' is still reference type, it means the user has not
- // specialized 'remove_reference'.
-
- // Please use BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro
- // to generate specialization of remove_reference for your class
- // See type traits library documentation for details
- BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
-
- const nonref * result = any_cast<nonref>(&operand);
- if(!result)
- boost::throw_exception(bad_any_cast());
- return *result;
- }
-
- template<typename ValueType>
- ValueType any_cast(any & operand)
- {
- typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // The comment in the above version of 'any_cast' explains when this
- // assert is fired and what to do.
- BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
-
- nonref * result = any_cast<nonref>(&operand);
- if(!result)
- boost::throw_exception(bad_any_cast());
- return *result;
- }
-
- // Note: The "unsafe" versions of any_cast are not part of the
- // public interface and may be removed at any time. They are
- // required where we know what type is stored in the any and can't
- // use typeid() comparison, e.g., when our types may travel across
- // different shared libraries.
- template<typename ValueType>
- ValueType * unsafe_any_cast(any * operand)
- {
- return &static_cast<any::holder<ValueType> *>(operand->content)->held;
- }
-
- template<typename ValueType>
- const ValueType * unsafe_any_cast(const any * operand)
- {
- return any_cast<ValueType>(const_cast<any *>(operand));
- }
-}
-
-// Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#endif
+++ /dev/null
-/* The following code declares class array,
- * an STL container (as wrapper) for arrays of constant size.
- *
- * See
- * http://www.josuttis.com/cppcode
- * for details and the latest version.
- * See
- * http://www.boost.org/libs/array for Documentation.
- * for documentation.
- *
- * (C) Copyright Nicolai M. Josuttis 2001.
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * 29 Jan 2004 - c_array() added, BOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis)
- * 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries.
- * 05 Aug 2001 - minor update (Nico Josuttis)
- * 20 Jan 2001 - STLport fix (Beman Dawes)
- * 29 Sep 2000 - Initial Revision (Nico Josuttis)
- *
- * Jan 29, 2004
- */
-#ifndef BOOST_ARRAY_HPP
-#define BOOST_ARRAY_HPP
-
-#include <cstddef>
-#include <stdexcept>
-#include <boost/assert.hpp>
-
-// Handles broken standard libraries better than <iterator>
-#include <boost/detail/iterator.hpp>
-#include <algorithm>
-
-// FIXES for broken compilers
-#include <boost/config.hpp>
-
-
-namespace boost {
-
- template<class T, std::size_t N>
- class array {
- public:
- T elems[N]; // fixed-size array of elements of type T
-
- public:
- // type definitions
- typedef T value_type;
- typedef T* iterator;
- typedef const T* const_iterator;
- typedef T& reference;
- typedef const T& const_reference;
- typedef std::size_t size_type;
- typedef std::ptrdiff_t difference_type;
-
- // iterator support
- iterator begin() { return elems; }
- const_iterator begin() const { return elems; }
- iterator end() { return elems+N; }
- const_iterator end() const { return elems+N; }
-
- // reverse iterator support
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
- typedef std::reverse_iterator<iterator> reverse_iterator;
- typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
- // workaround for broken reverse_iterator in VC7
- typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
- reference, iterator, reference> > reverse_iterator;
- typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
- const_reference, iterator, reference> > const_reverse_iterator;
-#else
- // workaround for broken reverse_iterator implementations
- typedef std::reverse_iterator<iterator,T> reverse_iterator;
- typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
-#endif
-
- reverse_iterator rbegin() { return reverse_iterator(end()); }
- const_reverse_iterator rbegin() const {
- return const_reverse_iterator(end());
- }
- reverse_iterator rend() { return reverse_iterator(begin()); }
- const_reverse_iterator rend() const {
- return const_reverse_iterator(begin());
- }
-
- // operator[]
- reference operator[](size_type i)
- {
- BOOST_ASSERT( i < N && "out of range" );
- return elems[i];
- }
-
- const_reference operator[](size_type i) const
- {
- BOOST_ASSERT( i < N && "out of range" );
- return elems[i];
- }
-
- // at() with range check
- reference at(size_type i) { rangecheck(i); return elems[i]; }
- const_reference at(size_type i) const { rangecheck(i); return elems[i]; }
-
- // front() and back()
- reference front()
- {
- return elems[0];
- }
-
- const_reference front() const
- {
- return elems[0];
- }
-
- reference back()
- {
- return elems[N-1];
- }
-
- const_reference back() const
- {
- return elems[N-1];
- }
-
- // size is constant
- static size_type size() { return N; }
- static bool empty() { return false; }
- static size_type max_size() { return N; }
- enum { static_size = N };
-
- // swap (note: linear complexity)
- void swap (array<T,N>& y) {
- std::swap_ranges(begin(),end(),y.begin());
- }
-
- // direct access to data (read-only)
- const T* data() const { return elems; }
-
- // use array as C array (direct read/write access to data)
- T* c_array() { return elems; }
-
- // assignment with type conversion
- template <typename T2>
- array<T,N>& operator= (const array<T2,N>& rhs) {
- std::copy(rhs.begin(),rhs.end(), begin());
- return *this;
- }
-
- // assign one value to all elements
- void assign (const T& value)
- {
- std::fill_n(begin(),size(),value);
- }
-
- // check range (may be private because it is static)
- static void rangecheck (size_type i) {
- if (i >= size()) {
- throw std::range_error("array<>: index out of range");
- }
- }
-
- };
-
- // comparisons
- template<class T, std::size_t N>
- bool operator== (const array<T,N>& x, const array<T,N>& y) {
- return std::equal(x.begin(), x.end(), y.begin());
- }
- template<class T, std::size_t N>
- bool operator< (const array<T,N>& x, const array<T,N>& y) {
- return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());
- }
- template<class T, std::size_t N>
- bool operator!= (const array<T,N>& x, const array<T,N>& y) {
- return !(x==y);
- }
- template<class T, std::size_t N>
- bool operator> (const array<T,N>& x, const array<T,N>& y) {
- return y<x;
- }
- template<class T, std::size_t N>
- bool operator<= (const array<T,N>& x, const array<T,N>& y) {
- return !(y<x);
- }
- template<class T, std::size_t N>
- bool operator>= (const array<T,N>& x, const array<T,N>& y) {
- return !(x<y);
- }
-
- // global swap()
- template<class T, std::size_t N>
- inline void swap (array<T,N>& x, array<T,N>& y) {
- x.swap(y);
- }
-
-} /* namespace boost */
-
-#endif /*BOOST_ARRAY_HPP*/
+++ /dev/null
-//
-// boost/assert.hpp - BOOST_ASSERT(expr)
-//
-// 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)
-//
-// Note: There are no include guards. This is intentional.
-//
-// See http://www.boost.org/libs/utility/assert.html for documentation.
-//
-
-#undef BOOST_ASSERT
-
-#if defined(BOOST_DISABLE_ASSERTS)
-
-# define BOOST_ASSERT(expr) ((void)0)
-
-#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
-
-#include <boost/current_function.hpp>
-
-namespace boost
-{
-
-void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined
-
-} // namespace boost
-
-#define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
-
-#else
-# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
-# define BOOST_ASSERT(expr) assert(expr)
-#endif
+++ /dev/null
-// Boost.Assign library
-//
-// Copyright Thorsten Ottosen 2003-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/assign/
-//
-
-
-#ifndef BOOST_ASSIGN_HPP
-#define BOOST_ASSIGN_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/assign/std.hpp>
-#include <boost/assign/list_of.hpp>
-#include <boost/assign/list_inserter.hpp>
-#include <boost/assign/assignment_exception.hpp>
-
-#endif
+++ /dev/null
-#ifndef BOOST_BIND_HPP_INCLUDED
-#define BOOST_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/bind/arg.hpp>
-#include <boost/detail/workaround.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
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4512) // assignment operator could not be generated
-#endif
-
-namespace boost
-{
-
-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<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;
-
-// 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_;
-};
-
-// type
-
-template<class T> class type {};
-
-// unwrap
-
-template<class F> inline F & unwrap(F * f, long)
-{
- return *f;
-}
-
-template<class F> inline F & unwrap(reference_wrapper<F> * f, int)
-{
- return f->get();
-}
-
-template<class F> inline F & unwrap(reference_wrapper<F> const * f, int)
-{
- return f->get();
-}
-
-#if !( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, <= 0x3004) )
-
-template<class R, class T> inline _mfi::dm<R, T> unwrap(R T::* * pm, int)
-{
- return _mfi::dm<R, T>(*pm);
-}
-
-#if !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
-// IBM/VisualAge 6.0 is not able to handle this overload.
-template<class R, class T> inline _mfi::dm<R, T> unwrap(R T::* const * pm, int)
-{
- return _mfi::dm<R, T>(*pm);
-}
-#endif
-
-
-#endif
-
-// 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 unwrap(&f, 0)();
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const
- {
- return unwrap(&f, 0)();
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A &, int)
- {
- unwrap(&f, 0)();
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A &, int) const
- {
- unwrap(&f, 0)();
- }
-
- template<class V> void accept(V &) const
- {
- }
-
- bool operator==(list0 const &) const
- {
- return true;
- }
-};
-
-template<class A1> class list1
-{
-public:
-
- explicit list1(A1 a1): a1_(a1) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- }
-
- bool operator==(list1 const & rhs) const
- {
- return ref_compare(a1_, rhs.a1_, 0);
- }
-
-private:
-
- A1 a1_;
-};
-
-template<class A1, class A2> class list2
-{
-public:
-
- list2(A1 a1, A2 a2): a1_(a1), a2_(a2) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- }
-
- bool operator==(list2 const & rhs) const
- {
- return ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
-};
-
-template<class A1, class A2, class A3> class list3
-{
-public:
-
- list3(A1 a1, A2 a2, A3 a3): a1_(a1), a2_(a2), a3_(a3) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- }
-
- bool operator==(list3 const & rhs) const
- {
- return ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
-};
-
-template<class A1, class A2, class A3, class A4> class list4
-{
-public:
-
- list4(A1 a1, A2 a2, A3 a3, A4 a4): a1_(a1), a2_(a2), a3_(a3), a4_(a4) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
- A4 operator[] (boost::arg<4>) const { return a4_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
- A4 operator[] (boost::arg<4> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- BOOST_BIND_VISIT_EACH(v, a4_, 0);
- }
-
- bool operator==(list4 const & rhs) const
- {
- return
- ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0) &&
- ref_compare(a4_, rhs.a4_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
- A4 a4_;
-};
-
-template<class A1, class A2, class A3, class A4, class A5> class list5
-{
-public:
-
- list5(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5): a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
- A4 operator[] (boost::arg<4>) const { return a4_; }
- A5 operator[] (boost::arg<5>) const { return a5_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
- A4 operator[] (boost::arg<4> (*) ()) const { return a4_; }
- A5 operator[] (boost::arg<5> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- BOOST_BIND_VISIT_EACH(v, a4_, 0);
- BOOST_BIND_VISIT_EACH(v, a5_, 0);
- }
-
- bool operator==(list5 const & rhs) const
- {
- return
- ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0) &&
- ref_compare(a4_, rhs.a4_, 0) && ref_compare(a5_, rhs.a5_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
- A4 a4_;
- A5 a5_;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6> class list6
-{
-public:
-
- list6(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6): a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
- A4 operator[] (boost::arg<4>) const { return a4_; }
- A5 operator[] (boost::arg<5>) const { return a5_; }
- A6 operator[] (boost::arg<6>) const { return a6_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
- A4 operator[] (boost::arg<4> (*) ()) const { return a4_; }
- A5 operator[] (boost::arg<5> (*) ()) const { return a5_; }
- A6 operator[] (boost::arg<6> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- BOOST_BIND_VISIT_EACH(v, a4_, 0);
- BOOST_BIND_VISIT_EACH(v, a5_, 0);
- BOOST_BIND_VISIT_EACH(v, a6_, 0);
- }
-
- bool operator==(list6 const & rhs) const
- {
- return
- ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0) &&
- ref_compare(a4_, rhs.a4_, 0) && ref_compare(a5_, rhs.a5_, 0) && ref_compare(a6_, rhs.a6_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
- A4 a4_;
- A5 a5_;
- A6 a6_;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7
-{
-public:
-
- list7(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7): a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
- A4 operator[] (boost::arg<4>) const { return a4_; }
- A5 operator[] (boost::arg<5>) const { return a5_; }
- A6 operator[] (boost::arg<6>) const { return a6_; }
- A7 operator[] (boost::arg<7>) const { return a7_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
- A4 operator[] (boost::arg<4> (*) ()) const { return a4_; }
- A5 operator[] (boost::arg<5> (*) ()) const { return a5_; }
- A6 operator[] (boost::arg<6> (*) ()) const { return a6_; }
- A7 operator[] (boost::arg<7> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- BOOST_BIND_VISIT_EACH(v, a4_, 0);
- BOOST_BIND_VISIT_EACH(v, a5_, 0);
- BOOST_BIND_VISIT_EACH(v, a6_, 0);
- BOOST_BIND_VISIT_EACH(v, a7_, 0);
- }
-
- bool operator==(list7 const & rhs) const
- {
- return
- ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0) &&
- ref_compare(a4_, rhs.a4_, 0) && ref_compare(a5_, rhs.a5_, 0) && ref_compare(a6_, rhs.a6_, 0) &&
- ref_compare(a7_, rhs.a7_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
- A4 a4_;
- A5 a5_;
- A6 a6_;
- A7 a7_;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> class list8
-{
-public:
-
- list8(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8): a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7), a8_(a8) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
- A4 operator[] (boost::arg<4>) const { return a4_; }
- A5 operator[] (boost::arg<5>) const { return a5_; }
- A6 operator[] (boost::arg<6>) const { return a6_; }
- A7 operator[] (boost::arg<7>) const { return a7_; }
- A8 operator[] (boost::arg<8>) const { return a8_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
- A4 operator[] (boost::arg<4> (*) ()) const { return a4_; }
- A5 operator[] (boost::arg<5> (*) ()) const { return a5_; }
- A6 operator[] (boost::arg<6> (*) ()) const { return a6_; }
- A7 operator[] (boost::arg<7> (*) ()) const { return a7_; }
- A8 operator[] (boost::arg<8> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- BOOST_BIND_VISIT_EACH(v, a4_, 0);
- BOOST_BIND_VISIT_EACH(v, a5_, 0);
- BOOST_BIND_VISIT_EACH(v, a6_, 0);
- BOOST_BIND_VISIT_EACH(v, a7_, 0);
- BOOST_BIND_VISIT_EACH(v, a8_, 0);
- }
-
- bool operator==(list8 const & rhs) const
- {
- return
- ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0) &&
- ref_compare(a4_, rhs.a4_, 0) && ref_compare(a5_, rhs.a5_, 0) && ref_compare(a6_, rhs.a6_, 0) &&
- ref_compare(a7_, rhs.a7_, 0) && ref_compare(a8_, rhs.a8_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
- A4 a4_;
- A5 a5_;
- A6 a6_;
- A7 a7_;
- A8 a8_;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9
-{
-public:
-
- list9(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9): a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7), a8_(a8), a9_(a9) {}
-
- A1 operator[] (boost::arg<1>) const { return a1_; }
- A2 operator[] (boost::arg<2>) const { return a2_; }
- A3 operator[] (boost::arg<3>) const { return a3_; }
- A4 operator[] (boost::arg<4>) const { return a4_; }
- A5 operator[] (boost::arg<5>) const { return a5_; }
- A6 operator[] (boost::arg<6>) const { return a6_; }
- A7 operator[] (boost::arg<7>) const { return a7_; }
- A8 operator[] (boost::arg<8>) const { return a8_; }
- A9 operator[] (boost::arg<9>) const { return a9_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
- A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
- A4 operator[] (boost::arg<4> (*) ()) const { return a4_; }
- A5 operator[] (boost::arg<5> (*) ()) const { return a5_; }
- A6 operator[] (boost::arg<6> (*) ()) const { return a6_; }
- A7 operator[] (boost::arg<7> (*) ()) const { return a7_; }
- A8 operator[] (boost::arg<8> (*) ()) const { return a8_; }
- A9 operator[] (boost::arg<9> (*) ()) const { return 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 unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_], a[a9_]);
- }
-
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
- {
- return unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_], a[a9_]);
- }
-
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_], a[a9_]);
- }
-
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
- {
- unwrap(&f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_], a[a9_]);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, a1_, 0);
- BOOST_BIND_VISIT_EACH(v, a2_, 0);
- BOOST_BIND_VISIT_EACH(v, a3_, 0);
- BOOST_BIND_VISIT_EACH(v, a4_, 0);
- BOOST_BIND_VISIT_EACH(v, a5_, 0);
- BOOST_BIND_VISIT_EACH(v, a6_, 0);
- BOOST_BIND_VISIT_EACH(v, a7_, 0);
- BOOST_BIND_VISIT_EACH(v, a8_, 0);
- BOOST_BIND_VISIT_EACH(v, a9_, 0);
- }
-
- bool operator==(list9 const & rhs) const
- {
- return
- ref_compare(a1_, rhs.a1_, 0) && ref_compare(a2_, rhs.a2_, 0) && ref_compare(a3_, rhs.a3_, 0) &&
- ref_compare(a4_, rhs.a4_, 0) && ref_compare(a5_, rhs.a5_, 0) && ref_compare(a6_, rhs.a6_, 0) &&
- ref_compare(a7_, rhs.a7_, 0) && ref_compare(a8_, rhs.a8_, 0) && ref_compare(a9_, rhs.a9_, 0);
- }
-
-private:
-
- A1 a1_;
- A2 a2_;
- A3 a3_;
- A4 a4_;
- A5 a5_;
- A6 a6_;
- A7 a7_;
- A8 a8_;
- A9 a9_;
-};
-
-// 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)
-
-template<class T> struct add_value
-{
- typedef _bi::value<T> type;
-};
-
-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 )
-
-#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
-
-} // namespace _bi
-
-// visit_each
-
-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);
-}
-
-// 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>
-
-#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>
-
-#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>
-
-#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>
-
-#undef BOOST_BIND_MF_NAME
-#undef BOOST_BIND_MF_CC
-
-#endif
-
-// data member pointers
-
-/*
-
-#if defined(__GNUC__) && (__GNUC__ == 2)
-
-namespace _bi
-{
-
-template<class T> struct add_cref
-{
- typedef T const & type;
-};
-
-template<class T> struct add_cref< T & >
-{
- typedef T const & type;
-};
-
-template<> struct add_cref<void>
-{
- typedef void type;
-};
-
-} // namespace _bi
-
-template<class R, class T, class A1>
-_bi::bind_t< typename _bi::add_cref<R>::type, _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<typename _bi::add_cref<R>::type, F, list_type>(F(f), list_type(a1));
-}
-
-#else
-
-template<class R, class T, class A1>
-_bi::bind_t< R const &, _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 const &, F, list_type>(F(f), list_type(a1));
-}
-
-#endif
-
-*/
-
-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) );
-}
-
-} // 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_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_BIND_APPLY_HPP_INCLUDED
-#define BOOST_BIND_APPLY_HPP_INCLUDED
-
-//
-// apply.hpp
-//
-// 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)
-//
-
-namespace boost
-{
-
-template<class R> struct apply
-{
- typedef R result_type;
-
- template<class F> result_type operator()(F & f) const
- {
- return f();
- }
-
- template<class F, class A1> result_type operator()(F & f, A1 & a1) const
- {
- return f(a1);
- }
-
- template<class F, class A1, class A2> result_type operator()(F & f, A1 & a1, A2 & a2) const
- {
- return f(a1, a2);
- }
-
- template<class F, class A1, class A2, class A3> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3) const
- {
- return f(a1, a2, a3);
- }
-
- template<class F, class A1, class A2, class A3, class A4> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
- {
- return f(a1, a2, a3, a4);
- }
-
- template<class F, class A1, class A2, class A3, class A4, class A5> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
- {
- return f(a1, a2, a3, a4, a5);
- }
-
- template<class F, class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
- {
- return f(a1, a2, a3, a4, a5, a6);
- }
-
- template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
- {
- return f(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> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
- {
- return f(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> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
- {
- return f(a1, a2, a3, a4, a5, a6, a7, a8, a9);
- }
-};
-
-} // namespace boost
-
-#endif // #ifndef BOOST_BIND_APPLY_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_BIND_ARG_HPP_INCLUDED
-#define BOOST_BIND_ARG_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// bind/arg.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)
-//
-// See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-namespace boost
-{
-
-template<int I> class arg
-{
-};
-
-template<int I> bool operator==(arg<I> const &, arg<I> const &)
-{
- return true;
-}
-
-} // namespace boost
-
-#endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED
+++ /dev/null
-//
-// bind/bind_cc.hpp - support for different calling conventions
-//
-// Do not include this header directly.
-//
-// Copyright (c) 2001 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)
-//
-// See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-template<class R>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (), _bi::list0>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) ())
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) ();
- typedef _bi::list0 list_type;
- return _bi::bind_t<R, F, list_type> (f, list_type());
-}
-
-template<class R, class B1, class A1>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1), typename _bi::list_av_1<A1>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1);
- 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 B1, class B2, class A1, class A2>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2), typename _bi::list_av_2<A1, A2>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2), A1 a1, A2 a2)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2);
- 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 B1, class B2, class B3,
- class A1, class A2, class A3>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3), typename _bi::list_av_3<A1, A2, A3>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3);
- 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 B1, class B2, class B3, class B4,
- class A1, class A2, class A3, class A4>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4), typename _bi::list_av_4<A1, A2, A3, A4>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4);
- 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 B1, class B2, class B3, class B4, class B5,
- class A1, class A2, class A3, class A4, class A5>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5), typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5);
- 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 B1, class B2, class B3, class B4, class B5, class B6,
- class A1, class A2, class A3, class A4, class A5, class A6>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6), typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6);
- 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 B1, class B2, class B3, class B4, class B5, class B6, class B7,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7), typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7);
- 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 B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8), typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8);
- 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 B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8, class B9,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
- _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8, B9), typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
- BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
-{
- typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9);
- 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));
-}
+++ /dev/null
-//
-// bind/bind_mf_cc.hpp - support for different calling conventions
-//
-// Do not include this header directly.
-//
-// Copyright (c) 2001 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)
-//
-// See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-// 0
-
-template<class R, class T,
- class A1>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf0)<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));
-}
-
-template<class R, class T,
- class A1>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<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));
-}
-
-// 1
-
-template<class R, class T,
- class B1,
- class A1, class A2>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
- typedef typename _bi::list_av_2<A1, A2>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
-}
-
-template<class R, class T,
- class B1,
- class A1, class A2>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
- typedef typename _bi::list_av_2<A1, A2>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
-}
-
-// 2
-
-template<class R, class T,
- class B1, class B2,
- class A1, class A2, class A3>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
- typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
-}
-
-template<class R, class T,
- class B1, class B2,
- class A1, class A2, class A3>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
- typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
-}
-
-// 3
-
-template<class R, class T,
- class B1, class B2, class B3,
- class A1, class A2, class A3, class A4>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
- typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
-}
-
-template<class R, class T,
- class B1, class B2, class B3,
- class A1, class A2, class A3, class A4>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
- typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
-}
-
-// 4
-
-template<class R, class T,
- class B1, class B2, class B3, class B4,
- class A1, class A2, class A3, class A4, class A5>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
- typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
-}
-
-template<class R, class T,
- class B1, class B2, class B3, class B4,
- class A1, class A2, class A3, class A4, class A5>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
- typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
-}
-
-// 5
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5,
- class A1, class A2, class A3, class A4, class A5, class A6>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
- typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
-}
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5,
- class A1, class A2, class A3, class A4, class A5, class A6>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
- typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
- return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
-}
-
-// 6
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5, class B6,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
- 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(f), list_type(a1, a2, a3, a4, a5, a6, a7));
-}
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5, class B6,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
- 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(f), list_type(a1, a2, a3, a4, a5, a6, a7));
-}
-
-// 7
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5, class B6, class B7,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
- 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(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
-}
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5, class B6, class B7,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
- 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(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
-}
-
-// 8
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
- 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(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
-}
-
-template<class R, class T,
- class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
- class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
- _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
- BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
-{
- typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
- 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(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
-}
+++ /dev/null
-//
-// bind/bind_template.hpp
-//
-// Do not include this header directly.
-//
-// Copyright (c) 2001-2004 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)
-//
-// See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
- typedef typename result_traits<R, F>::type result_type;
-
- result_type operator()()
- {
- list0 a;
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- result_type operator()() const
- {
- list0 a;
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1> result_type operator()(A1 & a1)
- {
- list1<A1 &> a(a1);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1> result_type operator()(A1 & a1) const
- {
- list1<A1 &> a(a1);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
- {
- list2<A1 &, A2 &> a(a1, a2);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2) const
- {
- list2<A1 &, A2 &> a(a1, a2);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
- {
- list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3) const
- {
- list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4)
- {
- list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
- {
- list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5)
- {
- list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
- {
- list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6)
- {
- list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
- {
- list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7)
- {
- list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
- {
- list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8)
- {
- list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
- {
- list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9)
- {
- list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
- {
- list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A> result_type eval(A & a)
- {
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class A> result_type eval(A & a) const
- {
- BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
- }
-
- template<class V> void accept(V & v) const
- {
- BOOST_BIND_VISIT_EACH(v, f_, 0);
- l_.accept(v);
- }
-
- bool compare(this_type const & rhs) const
- {
- return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_;
- }
-
-private:
-
- F f_;
- L l_;
+++ /dev/null
-#ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
-#define BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
-
-//
-// make_adaptable.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 _bi
-{
-
-template<class R, class F> class af0
-{
-public:
-
- typedef R result_type;
-
- explicit af0(F f): f_(f)
- {
- }
-
- result_type operator()()
- {
- return f_();
- }
-
- result_type operator()() const
- {
- return f_();
- }
-
-private:
-
- F f_;
-};
-
-template<class R, class A1, class F> class af1
-{
-public:
-
- typedef R result_type;
- typedef A1 argument_type;
- typedef A1 arg1_type;
-
- explicit af1(F f): f_(f)
- {
- }
-
- result_type operator()(A1 a1)
- {
- return f_(a1);
- }
-
- result_type operator()(A1 a1) const
- {
- return f_(a1);
- }
-
-private:
-
- F f_;
-};
-
-template<class R, class A1, class A2, class F> class af2
-{
-public:
-
- typedef R result_type;
- typedef A1 first_argument_type;
- typedef A2 second_argument_type;
- typedef A1 arg1_type;
- typedef A2 arg2_type;
-
- explicit af2(F f): f_(f)
- {
- }
-
- result_type operator()(A1 a1, A2 a2)
- {
- return f_(a1, a2);
- }
-
- result_type operator()(A1 a1, A2 a2) const
- {
- return f_(a1, a2);
- }
-
-private:
-
- F f_;
-};
-
-template<class R, class A1, class A2, class A3, class F> class af3
-{
-public:
-
- typedef R result_type;
- typedef A1 arg1_type;
- typedef A2 arg2_type;
- typedef A3 arg3_type;
-
- explicit af3(F f): f_(f)
- {
- }
-
- result_type operator()(A1 a1, A2 a2, A3 a3)
- {
- return f_(a1, a2, a3);
- }
-
- result_type operator()(A1 a1, A2 a2, A3 a3) const
- {
- return f_(a1, a2, a3);
- }
-
-private:
-
- F f_;
-};
-
-template<class R, class A1, class A2, class A3, class A4, class F> class af4
-{
-public:
-
- typedef R result_type;
- typedef A1 arg1_type;
- typedef A2 arg2_type;
- typedef A3 arg3_type;
- typedef A4 arg4_type;
-
- explicit af4(F f): f_(f)
- {
- }
-
- result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4)
- {
- return f_(a1, a2, a3, a4);
- }
-
- result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4) const
- {
- return f_(a1, a2, a3, a4);
- }
-
-private:
-
- F f_;
-};
-
-} // namespace _bi
-
-template<class R, class F> _bi::af0<R, F> make_adaptable(F f)
-{
- return _bi::af0<R, F>(f);
-}
-
-template<class R, class A1, class F> _bi::af1<R, A1, F> make_adaptable(F f)
-{
- return _bi::af1<R, A1, F>(f);
-}
-
-template<class R, class A1, class A2, class F> _bi::af2<R, A1, A2, F> make_adaptable(F f)
-{
- return _bi::af2<R, A1, A2, F>(f);
-}
-
-template<class R, class A1, class A2, class A3, class F> _bi::af3<R, A1, A2, A3, F> make_adaptable(F f)
-{
- return _bi::af3<R, A1, A2, A3, F>(f);
-}
-
-template<class R, class A1, class A2, class A3, class A4, class F> _bi::af4<R, A1, A2, A3, A4, F> make_adaptable(F f)
-{
- return _bi::af4<R, A1, A2, A3, A4, F>(f);
-}
-
-} // namespace boost
-
-#endif // #ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
+++ /dev/null
-//
-// bind/mem_fn_cc.hpp - support for different calling conventions
-//
-// Do not include this header directly.
-//
-// Copyright (c) 2001 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)
-//
-// See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-template<class R, class T> _mfi::BOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) ())
-{
- return _mfi::BOOST_MEM_FN_NAME(mf0)<R, T>(f);
-}
-
-template<class R, class T> _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) () const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T>(f);
-}
-
-template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1>(f);
-}
-
-template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f);
-}
-
-template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f);
-}
-
-template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8))
-{
- return _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
-}
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const)
-{
- return _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
-}
+++ /dev/null
-//
-// bind/mem_fn_template.hpp
-//
-// Do not include this header directly
-//
-// Copyright (c) 2001 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)
-//
-// See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-// mf0
-
-template<class R, class T BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf0)
-{
-public:
-
- typedef R result_type;
- typedef T * argument_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) ())
- F f_;
-
- template<class U> R call(U & u, T const *) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)();
- }
-
- template<class U> R call(U & u, void const *) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf0)(F f): f_(f) {}
-
- R operator()(T * p) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)();
- }
-
- template<class U> R operator()(U & u) const
- {
- BOOST_MEM_FN_RETURN call(u, &u);
- }
-
- R operator()(T & t) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)();
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf0) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf0) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf0
-
-template<class R, class T BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf0)
-{
-public:
-
- typedef R result_type;
- typedef T const * argument_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) () const)
- F f_;
-
- template<class U> R call(U & u, T const *) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)();
- }
-
- template<class U> R call(U & u, void const *) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u) const
- {
- BOOST_MEM_FN_RETURN call(u, &u);
- }
-
- R operator()(T const & t) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)();
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf0) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf0) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf1
-
-template<class R, class T, class A1 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf1)
-{
-public:
-
- typedef R result_type;
- typedef T * first_argument_type;
- typedef A1 second_argument_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1))
- F f_;
-
- template<class U, class B1> R call(U & u, T const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1);
- }
-
- template<class U, class B1> R call(U & u, void const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf1)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1);
- }
-
- template<class U> R operator()(U & u, A1 a1) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1);
- }
-
- R operator()(T & t, A1 a1) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf1) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf1) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf1
-
-template<class R, class T, class A1 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf1)
-{
-public:
-
- typedef R result_type;
- typedef T const * first_argument_type;
- typedef A1 second_argument_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1) const)
- F f_;
-
- template<class U, class B1> R call(U & u, T const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1);
- }
-
- template<class U, class B1> R call(U & u, void const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf1)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1);
- }
-
- R operator()(T const & t, A1 a1) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf1) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf1) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf2
-
-template<class R, class T, class A1, class A2 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf2)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2))
- F f_;
-
- template<class U, class B1, class B2> R call(U & u, T const *, B1 & b1, B2 & b2) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
- }
-
- template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf2)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2);
- }
-
- R operator()(T & t, A1 a1, A2 a2) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf2) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf2) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf2
-
-template<class R, class T, class A1, class A2 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf2)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2) const)
- F f_;
-
- template<class U, class B1, class B2> R call(U & u, T const *, B1 & b1, B2 & b2) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
- }
-
- template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf2)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2);
- }
-
- R operator()(T const & t, A1 a1, A2 a2) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf2) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf2) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf3
-
-template<class R, class T, class A1, class A2, class A3 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf3)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3))
- F f_;
-
- template<class U, class B1, class B2, class B3> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
- }
-
- template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf3)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2, A3 a3) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3);
- }
-
- R operator()(T & t, A1 a1, A2 a2, A3 a3) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf3) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf3) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf3
-
-template<class R, class T, class A1, class A2, class A3 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf3)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const)
- F f_;
-
- template<class U, class B1, class B2, class B3> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
- }
-
- template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf3)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3);
- }
-
- R operator()(T const & t, A1 a1, A2 a2, A3 a3) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf3) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf3) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf4
-
-template<class R, class T, class A1, class A2, class A3, class A4 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf4)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4))
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
- }
-
- template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf4)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4);
- }
-
- R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf4) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf4) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf4
-
-template<class R, class T, class A1, class A2, class A3, class A4 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf4)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const)
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
- }
-
- template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf4)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4);
- }
-
- R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf4) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf4) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf5
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf5)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5))
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf5)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5);
- }
-
- R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf5) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf5) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf5
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf5)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const)
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf5)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5);
- }
-
- R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf5) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf5) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf6
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf6)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6))
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf6)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6);
- }
-
- R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf6) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf6) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf6
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf6)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const)
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf6)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6);
- }
-
- R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf6) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf6) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf7
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf7)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7))
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf7)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7);
- }
-
- R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf7) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf7) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf7
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf7)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const)
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf7)(F f): f_(f) {}
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7);
- }
-
- R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf7) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf7) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// mf8
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf8)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8))
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(mf8)(F f): f_(f) {}
-
- R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(mf8) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(mf8) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
-// cmf8
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf8)
-{
-public:
-
- typedef R result_type;
-
-private:
-
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const)
- F f_;
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
- }
-
- template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
- }
-
-public:
-
- explicit BOOST_MEM_FN_NAME(cmf8)(F f): f_(f) {}
-
- R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
- {
- BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
- {
- BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
- {
- BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- bool operator==(BOOST_MEM_FN_NAME(cmf8) const & rhs) const
- {
- return f_ == rhs.f_;
- }
-
- bool operator!=(BOOST_MEM_FN_NAME(cmf8) const & rhs) const
- {
- return f_ != rhs.f_;
- }
-};
-
+++ /dev/null
-//
-// bind/mem_fn_vw.hpp - void return helper wrappers
-//
-// Do not include this header directly
-//
-// Copyright (c) 2001 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)
-//
-// See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-template<class R, class T> struct BOOST_MEM_FN_NAME(mf0): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)<R, T, R (BOOST_MEM_FN_CC T::*) ()>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) ();
- explicit BOOST_MEM_FN_NAME(mf0)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)<R, T, F>(f) {}
-};
-
-template<class R, class T> struct BOOST_MEM_FN_NAME(cmf0): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)<R, T, R (BOOST_MEM_FN_CC T::*) () const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) () const;
- explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)<R, T, F>(f) {}
-};
-
-
-template<class R, class T, class A1> struct BOOST_MEM_FN_NAME(mf1): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)<R, T, A1, R (BOOST_MEM_FN_CC T::*) (A1)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1);
- explicit BOOST_MEM_FN_NAME(mf1)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)<R, T, A1, F>(f) {}
-};
-
-template<class R, class T, class A1> struct BOOST_MEM_FN_NAME(cmf1): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)<R, T, A1, R (BOOST_MEM_FN_CC T::*) (A1) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1) const;
- explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)<R, T, A1, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2> struct BOOST_MEM_FN_NAME(mf2): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, R (BOOST_MEM_FN_CC T::*) (A1, A2)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2);
- explicit BOOST_MEM_FN_NAME(mf2)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2> struct BOOST_MEM_FN_NAME(cmf2): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, R (BOOST_MEM_FN_CC T::*) (A1, A2) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const;
- explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2, class A3> struct BOOST_MEM_FN_NAME(mf3): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3);
- explicit BOOST_MEM_FN_NAME(mf3)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2, class A3> struct BOOST_MEM_FN_NAME(cmf3): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const;
- explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2, class A3, class A4> struct BOOST_MEM_FN_NAME(mf4): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4);
- explicit BOOST_MEM_FN_NAME(mf4)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2, class A3, class A4> struct BOOST_MEM_FN_NAME(cmf4): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const;
- explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct BOOST_MEM_FN_NAME(mf5): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5);
- explicit BOOST_MEM_FN_NAME(mf5)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct BOOST_MEM_FN_NAME(cmf5): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const;
- explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct BOOST_MEM_FN_NAME(mf6): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6);
- explicit BOOST_MEM_FN_NAME(mf6)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct BOOST_MEM_FN_NAME(cmf6): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const;
- explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct BOOST_MEM_FN_NAME(mf7): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7);
- explicit BOOST_MEM_FN_NAME(mf7)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct BOOST_MEM_FN_NAME(cmf7): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const;
- explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {}
-};
-
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct BOOST_MEM_FN_NAME(mf8): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8)>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8);
- explicit BOOST_MEM_FN_NAME(mf8)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {}
-};
-
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct BOOST_MEM_FN_NAME(cmf8): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8) const>
-{
- typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const;
- explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {}
-};
-
+++ /dev/null
-#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
-#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// bind/placeholders.hpp - _N definitions
-//
-// 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)
-//
-// See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-#include <boost/bind/arg.hpp>
-#include <boost/config.hpp>
-
-namespace
-{
-
-#if defined(__BORLANDC__)
-
-static inline boost::arg<1> _1() { return boost::arg<1>(); }
-static inline boost::arg<2> _2() { return boost::arg<2>(); }
-static inline boost::arg<3> _3() { return boost::arg<3>(); }
-static inline boost::arg<4> _4() { return boost::arg<4>(); }
-static inline boost::arg<5> _5() { return boost::arg<5>(); }
-static inline boost::arg<6> _6() { return boost::arg<6>(); }
-static inline boost::arg<7> _7() { return boost::arg<7>(); }
-static inline boost::arg<8> _8() { return boost::arg<8>(); }
-static inline boost::arg<9> _9() { return boost::arg<9>(); }
-
-#elif defined(BOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__)
-
-static boost::arg<1> _1;
-static boost::arg<2> _2;
-static boost::arg<3> _3;
-static boost::arg<4> _4;
-static boost::arg<5> _5;
-static boost::arg<6> _6;
-static boost::arg<7> _7;
-static boost::arg<8> _8;
-static boost::arg<9> _9;
-
-#else
-
-boost::arg<1> _1;
-boost::arg<2> _2;
-boost::arg<3> _3;
-boost::arg<4> _4;
-boost::arg<5> _5;
-boost::arg<6> _6;
-boost::arg<7> _7;
-boost::arg<8> _8;
-boost::arg<9> _9;
-
-#endif
-
-} // unnamed namespace
-
-#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_BIND_PROTECT_HPP_INCLUDED
-#define BOOST_BIND_PROTECT_HPP_INCLUDED
-
-//
-// protect.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 _bi
-{
-
-template<class F> class protected_bind_t
-{
-public:
-
- typedef typename F::result_type result_type;
-
- explicit protected_bind_t(F f): f_(f)
- {
- }
-
- result_type operator()()
- {
- return f_();
- }
-
- result_type operator()() const
- {
- return f_();
- }
-
- template<class A1> result_type operator()(A1 & a1)
- {
- return f_(a1);
- }
-
- template<class A1> result_type operator()(A1 & a1) const
- {
- return f_(a1);
- }
-
- template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
- {
- return f_(a1, a2);
- }
-
- template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2) const
- {
- return f_(a1, a2);
- }
-
- template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
- {
- return f_(a1, a2, a3);
- }
-
- template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3) const
- {
- return f_(a1, a2, a3);
- }
-
- template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4)
- {
- return f_(a1, a2, a3, a4);
- }
-
- template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
- {
- return f_(a1, a2, a3, a4);
- }
-
- template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5)
- {
- return f_(a1, a2, a3, a4, a5);
- }
-
- template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
- {
- return f_(a1, a2, a3, a4, a5);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6)
- {
- return f_(a1, a2, a3, a4, a5, a6);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
- {
- return f_(a1, a2, a3, a4, a5, a6);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7)
- {
- return f_(a1, a2, a3, a4, a5, a6, a7);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
- {
- return f_(a1, a2, a3, a4, a5, a6, a7);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8)
- {
- return f_(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
- {
- return f_(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9)
- {
- return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
- }
-
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
- {
- return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
- }
-
-private:
-
- F f_;
-};
-
-} // namespace _bi
-
-template<class F> _bi::protected_bind_t<F> protect(F f)
-{
- return _bi::protected_bind_t<F>(f);
-}
-
-} // namespace boost
-
-#endif // #ifndef BOOST_BIND_PROTECT_HPP_INCLUDED
+++ /dev/null
-//-----------------------------------------------------------------------------
-// boost blank.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the 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_BLANK_HPP
-#define BOOST_BLANK_HPP
-
-#include "boost/blank_fwd.hpp"
-
-#include <iosfwd> // for std::basic_ostream forward declare
-
-#include "boost/detail/templated_streams.hpp"
-#include "boost/mpl/bool.hpp"
-#include "boost/type_traits/is_empty.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/type_traits/is_stateless.hpp"
-
-namespace boost {
-
-struct blank
-{
-};
-
-// type traits specializations
-//
-
-template <>
-struct is_pod< blank >
- : mpl::true_
-{
-};
-
-template <>
-struct is_empty< blank >
- : mpl::true_
-{
-};
-
-template <>
-struct is_stateless< blank >
- : mpl::true_
-{
-};
-
-// relational operators
-//
-
-inline bool operator==(const blank&, const blank&)
-{
- return true;
-}
-
-inline bool operator<(const blank&, const blank&)
-{
- return false;
-}
-
-// streaming support
-//
-BOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
-inline BOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
- BOOST_TEMPLATED_STREAM(ostream, E,T)& out
- , const blank&
- )
-{
- // (output nothing)
- return out;
-}
-
-} // namespace boost
-
-#endif // BOOST_BLANK_HPP
+++ /dev/null
-//-----------------------------------------------------------------------------
-// boost blank_fwd.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the 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_BLANK_FWD_HPP
-#define BOOST_BLANK_FWD_HPP
-
-namespace boost {
-
-struct blank;
-
-} // namespace boost
-
-#endif // BOOST_BLANK_FWD_HPP
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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/utility for most recent version including documentation.
-
-// See boost/detail/call_traits.hpp and boost/detail/ob_call_traits.hpp
-// for full copyright notices.
-
-#ifndef BOOST_CALL_TRAITS_HPP
-#define BOOST_CALL_TRAITS_HPP
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/detail/ob_call_traits.hpp>
-#else
-#include <boost/detail/call_traits.hpp>
-#endif
-
-#endif // BOOST_CALL_TRAITS_HPP
+++ /dev/null
-// boost cast.hpp header file ----------------------------------------------//
-
-// (C) Copyright Kevlin Henney and Dave Abrahams 1999.
-// Distributed under the 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/conversion for Documentation.
-
-// Revision History
-// 23 JUn 05 numeric_cast removed and redirected to the new verion (Fernando Cacciola)
-// 02 Apr 01 Removed BOOST_NO_LIMITS workarounds and included
-// <boost/limits.hpp> instead (the workaround did not
-// actually compile when BOOST_NO_LIMITS was defined in
-// any case, so we loose nothing). (John Maddock)
-// 21 Jan 01 Undid a bug I introduced yesterday. numeric_cast<> never
-// worked with stock GCC; trying to get it to do that broke
-// vc-stlport.
-// 20 Jan 01 Moved BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS to config.hpp.
-// Removed unused BOOST_EXPLICIT_TARGET macro. Moved
-// boost::detail::type to boost/type.hpp. Made it compile with
-// stock gcc again (Dave Abrahams)
-// 29 Nov 00 Remove nested namespace cast, cleanup spacing before Formal
-// Review (Beman Dawes)
-// 19 Oct 00 Fix numeric_cast for floating-point types (Dave Abrahams)
-// 15 Jul 00 Suppress numeric_cast warnings for GCC, Borland and MSVC
-// (Dave Abrahams)
-// 30 Jun 00 More MSVC6 wordarounds. See comments below. (Dave Abrahams)
-// 28 Jun 00 Removed implicit_cast<>. See comment below. (Beman Dawes)
-// 27 Jun 00 More MSVC6 workarounds
-// 15 Jun 00 Add workarounds for MSVC6
-// 2 Feb 00 Remove bad_numeric_cast ";" syntax error (Doncho Angelov)
-// 26 Jan 00 Add missing throw() to bad_numeric_cast::what(0 (Adam Levar)
-// 29 Dec 99 Change using declarations so usages in other namespaces work
-// correctly (Dave Abrahams)
-// 23 Sep 99 Change polymorphic_downcast assert to also detect M.I. errors
-// as suggested Darin Adler and improved by Valentin Bonnard.
-// 2 Sep 99 Remove controversial asserts, simplify, rename.
-// 30 Aug 99 Move to cast.hpp, replace value_cast with numeric_cast,
-// place in nested namespace.
-// 3 Aug 99 Initial version
-
-#ifndef BOOST_CAST_HPP
-#define BOOST_CAST_HPP
-
-# include <boost/config.hpp>
-# include <cassert>
-# include <typeinfo>
-# include <boost/type.hpp>
-# include <boost/limits.hpp>
-# include <boost/detail/select_type.hpp>
-
-// It has been demonstrated numerous times that MSVC 6.0 fails silently at link
-// time if you use a template function which has template parameters that don't
-// appear in the function's argument list.
-//
-// TODO: Add this to config.hpp?
-# if defined(BOOST_MSVC) && BOOST_MSVC <= 1200 // 1200 = VC6
-# define BOOST_EXPLICIT_DEFAULT_TARGET , ::boost::type<Target>* = 0
-# else
-# define BOOST_EXPLICIT_DEFAULT_TARGET
-# endif
-
-namespace boost
-{
-// See the documentation for descriptions of how to choose between
-// static_cast<>, dynamic_cast<>, polymorphic_cast<> and polymorphic_downcast<>
-
-// polymorphic_cast --------------------------------------------------------//
-
- // Runtime checked polymorphic downcasts and crosscasts.
- // Suggested in The C++ Programming Language, 3rd Ed, Bjarne Stroustrup,
- // section 15.8 exercise 1, page 425.
-
- template <class Target, class Source>
- inline Target polymorphic_cast(Source* x BOOST_EXPLICIT_DEFAULT_TARGET)
- {
- Target tmp = dynamic_cast<Target>(x);
- if ( tmp == 0 ) throw std::bad_cast();
- return tmp;
- }
-
-// polymorphic_downcast ----------------------------------------------------//
-
- // assert() checked polymorphic downcast. Crosscasts prohibited.
-
- // WARNING: Because this cast uses assert(), it violates the One Definition
- // Rule if NDEBUG is inconsistently defined across translation units.
-
- // Contributed by Dave Abrahams
-
- template <class Target, class Source>
- inline Target polymorphic_downcast(Source* x BOOST_EXPLICIT_DEFAULT_TARGET)
- {
- assert( dynamic_cast<Target>(x) == x ); // detect logic error
- return static_cast<Target>(x);
- }
-
-# undef BOOST_EXPLICIT_DEFAULT_TARGET
-
-} // namespace boost
-
-# include <boost/numeric/conversion/cast.hpp>
-
-#endif // BOOST_CAST_HPP
+++ /dev/null
-#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
-#define BOOST_CHECKED_DELETE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/checked_delete.hpp
-//
-// Copyright (c) 2002, 2003 Peter Dimov
-// Copyright (c) 2003 Daniel Frey
-// Copyright (c) 2003 Howard Hinnant
-//
-// Distributed under the 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/utility/checked_delete.html for documentation.
-//
-
-namespace boost
-{
-
-// verify that types are complete for increased safety
-
-template<class T> inline void checked_delete(T * x)
-{
- // intentionally complex - simplification causes regressions
- typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
- (void) sizeof(type_must_be_complete);
- delete x;
-}
-
-template<class T> inline void checked_array_delete(T * x)
-{
- typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
- (void) sizeof(type_must_be_complete);
- delete [] x;
-}
-
-template<class T> struct checked_deleter
-{
- typedef void result_type;
- typedef T * argument_type;
-
- void operator()(T * x) const
- {
- // boost:: disables ADL
- boost::checked_delete(x);
- }
-};
-
-template<class T> struct checked_array_deleter
-{
- typedef void result_type;
- typedef T * argument_type;
-
- void operator()(T * x) const
- {
- boost::checked_array_delete(x);
- }
-};
-
-} // namespace boost
-
-#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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/utility for most recent version including documentation.
-
-// See boost/detail/compressed_pair.hpp and boost/detail/ob_compressed_pair.hpp
-// for full copyright notices.
-
-#ifndef BOOST_COMPRESSED_PAIR_HPP
-#define BOOST_COMPRESSED_PAIR_HPP
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/detail/ob_compressed_pair.hpp>
-#else
-#include <boost/detail/compressed_pair.hpp>
-#endif
-
-#endif // BOOST_COMPRESSED_PAIR_HPP
+++ /dev/null
-//
-// (C) Copyright Jeremy Siek 2000.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Revision History:
-//
-// 17 July 2001: Added const to some member functions. (Jeremy Siek)
-// 05 May 2001: Removed static dummy_cons object. (Jeremy Siek)
-
-// See http://www.boost.org/libs/concept_check for documentation.
-
-#ifndef BOOST_CONCEPT_ARCHETYPES_HPP
-#define BOOST_CONCEPT_ARCHETYPES_HPP
-
-#include <boost/config.hpp>
-#include <boost/iterator.hpp>
-#include <boost/mpl/identity.hpp>
-#include <functional>
-
-namespace boost {
-
- //===========================================================================
- // Basic Archetype Classes
-
- namespace detail {
- class dummy_constructor { };
- }
-
- // A type that models no concept. The template parameter
- // is only there so that null_archetype types can be created
- // that have different type.
- template <class T = int>
- class null_archetype {
- private:
- null_archetype() { }
- null_archetype(const null_archetype&) { }
- null_archetype& operator=(const null_archetype&) { return *this; }
- public:
- null_archetype(detail::dummy_constructor) { }
-#ifndef __MWERKS__
- template <class TT>
- friend void dummy_friend(); // just to avoid warnings
-#endif
- };
-
- // This is a helper class that provides a way to get a reference to
- // an object. The get() function will never be called at run-time
- // (nothing in this file will) so this seemingly very bad function
- // is really quite innocent. The name of this class needs to be
- // changed.
- template <class T>
- class static_object
- {
- public:
- static T& get()
- {
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
- return *reinterpret_cast<T*>(0);
-#else
- static char d[sizeof(T)];
- return *reinterpret_cast<T*>(d);
-#endif
- }
- };
-
- template <class Base = null_archetype<> >
- class default_constructible_archetype : public Base {
- public:
- default_constructible_archetype()
- : Base(static_object<detail::dummy_constructor>::get()) { }
- default_constructible_archetype(detail::dummy_constructor x) : Base(x) { }
- };
-
- template <class Base = null_archetype<> >
- class assignable_archetype : public Base {
- assignable_archetype() { }
- assignable_archetype(const assignable_archetype&) { }
- public:
- assignable_archetype& operator=(const assignable_archetype&) {
- return *this;
- }
- assignable_archetype(detail::dummy_constructor x) : Base(x) { }
- };
-
- template <class Base = null_archetype<> >
- class copy_constructible_archetype : public Base {
- public:
- copy_constructible_archetype()
- : Base(static_object<detail::dummy_constructor>::get()) { }
- copy_constructible_archetype(const copy_constructible_archetype&)
- : Base(static_object<detail::dummy_constructor>::get()) { }
- copy_constructible_archetype(detail::dummy_constructor x) : Base(x) { }
- };
-
- template <class Base = null_archetype<> >
- class sgi_assignable_archetype : public Base {
- public:
- sgi_assignable_archetype(const sgi_assignable_archetype&)
- : Base(static_object<detail::dummy_constructor>::get()) { }
- sgi_assignable_archetype& operator=(const sgi_assignable_archetype&) {
- return *this;
- }
- sgi_assignable_archetype(const detail::dummy_constructor& x) : Base(x) { }
- };
-
- struct default_archetype_base {
- default_archetype_base(detail::dummy_constructor) { }
- };
-
- // Careful, don't use same type for T and Base. That results in the
- // conversion operator being invalid. Since T is often
- // null_archetype, can't use null_archetype for Base.
- template <class T, class Base = default_archetype_base>
- class convertible_to_archetype : public Base {
- private:
- convertible_to_archetype() { }
- convertible_to_archetype(const convertible_to_archetype& ) { }
- convertible_to_archetype& operator=(const convertible_to_archetype&)
- { return *this; }
- public:
- convertible_to_archetype(detail::dummy_constructor x) : Base(x) { }
- operator const T&() const { return static_object<T>::get(); }
- };
-
- template <class T, class Base = default_archetype_base>
- class convertible_from_archetype : public Base {
- private:
- convertible_from_archetype() { }
- convertible_from_archetype(const convertible_from_archetype& ) { }
- convertible_from_archetype& operator=(const convertible_from_archetype&)
- { return *this; }
- public:
- convertible_from_archetype(detail::dummy_constructor x) : Base(x) { }
- convertible_from_archetype(const T&) { }
- convertible_from_archetype& operator=(const T&)
- { return *this; }
- };
-
- class boolean_archetype {
- public:
- boolean_archetype(const boolean_archetype&) { }
- operator bool() const { return true; }
- boolean_archetype(detail::dummy_constructor) { }
- private:
- boolean_archetype() { }
- boolean_archetype& operator=(const boolean_archetype&) { return *this; }
- };
-
- template <class Base = null_archetype<> >
- class equality_comparable_archetype : public Base {
- public:
- equality_comparable_archetype(detail::dummy_constructor x) : Base(x) { }
- };
- template <class Base>
- boolean_archetype
- operator==(const equality_comparable_archetype<Base>&,
- const equality_comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
- template <class Base>
- boolean_archetype
- operator!=(const equality_comparable_archetype<Base>&,
- const equality_comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
-
-
- template <class Base = null_archetype<> >
- class equality_comparable2_first_archetype : public Base {
- public:
- equality_comparable2_first_archetype(detail::dummy_constructor x)
- : Base(x) { }
- };
- template <class Base = null_archetype<> >
- class equality_comparable2_second_archetype : public Base {
- public:
- equality_comparable2_second_archetype(detail::dummy_constructor x)
- : Base(x) { }
- };
- template <class Base1, class Base2>
- boolean_archetype
- operator==(const equality_comparable2_first_archetype<Base1>&,
- const equality_comparable2_second_archetype<Base2>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
- template <class Base1, class Base2>
- boolean_archetype
- operator!=(const equality_comparable2_first_archetype<Base1>&,
- const equality_comparable2_second_archetype<Base2>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
-
-
- template <class Base = null_archetype<> >
- class less_than_comparable_archetype : public Base {
- public:
- less_than_comparable_archetype(detail::dummy_constructor x) : Base(x) { }
- };
- template <class Base>
- boolean_archetype
- operator<(const less_than_comparable_archetype<Base>&,
- const less_than_comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
-
-
-
- template <class Base = null_archetype<> >
- class comparable_archetype : public Base {
- public:
- comparable_archetype(detail::dummy_constructor x) : Base(x) { }
- };
- template <class Base>
- boolean_archetype
- operator<(const comparable_archetype<Base>&,
- const comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
- template <class Base>
- boolean_archetype
- operator<=(const comparable_archetype<Base>&,
- const comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
- template <class Base>
- boolean_archetype
- operator>(const comparable_archetype<Base>&,
- const comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
- template <class Base>
- boolean_archetype
- operator>=(const comparable_archetype<Base>&,
- const comparable_archetype<Base>&)
- {
- return boolean_archetype(static_object<detail::dummy_constructor>::get());
- }
-
-
- // The purpose of the optags is so that one can specify
- // exactly which types the operator< is defined between.
- // This is useful for allowing the operations:
- //
- // A a; B b;
- // a < b
- // b < a
- //
- // without also allowing the combinations:
- //
- // a < a
- // b < b
- //
- struct optag1 { };
- struct optag2 { };
- struct optag3 { };
-
-#define BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(OP, NAME) \
- template <class Base = null_archetype<>, class Tag = optag1 > \
- class NAME##_first_archetype : public Base { \
- public: \
- NAME##_first_archetype(detail::dummy_constructor x) : Base(x) { } \
- }; \
- \
- template <class Base = null_archetype<>, class Tag = optag1 > \
- class NAME##_second_archetype : public Base { \
- public: \
- NAME##_second_archetype(detail::dummy_constructor x) : Base(x) { } \
- }; \
- \
- template <class BaseFirst, class BaseSecond, class Tag> \
- boolean_archetype \
- operator OP (const NAME##_first_archetype<BaseFirst, Tag>&, \
- const NAME##_second_archetype<BaseSecond, Tag>&) \
- { \
- return boolean_archetype(static_object<detail::dummy_constructor>::get()); \
- }
-
- BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(==, equal_op)
- BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(!=, not_equal_op)
- BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(<, less_than_op)
- BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(<=, less_equal_op)
- BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(>, greater_than_op)
- BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(>=, greater_equal_op)
-
-#define BOOST_DEFINE_OPERATOR_ARCHETYPE(OP, NAME) \
- template <class Base = null_archetype<> > \
- class NAME##_archetype : public Base { \
- public: \
- NAME##_archetype(detail::dummy_constructor x) : Base(x) { } \
- NAME##_archetype(const NAME##_archetype&) \
- : Base(static_object<detail::dummy_constructor>::get()) { } \
- NAME##_archetype& operator=(const NAME##_archetype&) { return *this; } \
- }; \
- template <class Base> \
- NAME##_archetype<Base> \
- operator OP (const NAME##_archetype<Base>&,\
- const NAME##_archetype<Base>&) \
- { \
- return \
- NAME##_archetype<Base>(static_object<detail::dummy_constructor>::get()); \
- }
-
- BOOST_DEFINE_OPERATOR_ARCHETYPE(+, addable)
- BOOST_DEFINE_OPERATOR_ARCHETYPE(-, subtractable)
- BOOST_DEFINE_OPERATOR_ARCHETYPE(*, multipliable)
- BOOST_DEFINE_OPERATOR_ARCHETYPE(/, dividable)
- BOOST_DEFINE_OPERATOR_ARCHETYPE(%, modable)
-
- // As is, these are useless because of the return type.
- // Need to invent a better way...
-#define BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(OP, NAME) \
- template <class Return, class Base = null_archetype<> > \
- class NAME##_first_archetype : public Base { \
- public: \
- NAME##_first_archetype(detail::dummy_constructor x) : Base(x) { } \
- }; \
- \
- template <class Return, class Base = null_archetype<> > \
- class NAME##_second_archetype : public Base { \
- public: \
- NAME##_second_archetype(detail::dummy_constructor x) : Base(x) { } \
- }; \
- \
- template <class Return, class BaseFirst, class BaseSecond> \
- Return \
- operator OP (const NAME##_first_archetype<Return, BaseFirst>&, \
- const NAME##_second_archetype<Return, BaseSecond>&) \
- { \
- return Return(static_object<detail::dummy_constructor>::get()); \
- }
-
- BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(+, plus_op)
- BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(*, time_op)
- BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(/, divide_op)
- BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(-, subtract_op)
- BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(%, mod_op)
-
- //===========================================================================
- // Function Object Archetype Classes
-
- template <class Return>
- class generator_archetype {
- public:
- const Return& operator()() {
- return static_object<Return>::get();
- }
- };
-
- class void_generator_archetype {
- public:
- void operator()() { }
- };
-
- template <class Arg, class Return>
- class unary_function_archetype {
- private:
- unary_function_archetype() { }
- public:
- unary_function_archetype(detail::dummy_constructor) { }
- const Return& operator()(const Arg&) const {
- return static_object<Return>::get();
- }
- };
-
- template <class Arg1, class Arg2, class Return>
- class binary_function_archetype {
- private:
- binary_function_archetype() { }
- public:
- binary_function_archetype(detail::dummy_constructor) { }
- const Return& operator()(const Arg1&, const Arg2&) const {
- return static_object<Return>::get();
- }
- };
-
- template <class Arg>
- class unary_predicate_archetype {
- typedef boolean_archetype Return;
- unary_predicate_archetype() { }
- public:
- unary_predicate_archetype(detail::dummy_constructor) { }
- const Return& operator()(const Arg&) const {
- return static_object<Return>::get();
- }
- };
-
- template <class Arg1, class Arg2, class Base = null_archetype<> >
- class binary_predicate_archetype {
- typedef boolean_archetype Return;
- binary_predicate_archetype() { }
- public:
- binary_predicate_archetype(detail::dummy_constructor) { }
- const Return& operator()(const Arg1&, const Arg2&) const {
- return static_object<Return>::get();
- }
- };
-
- //===========================================================================
- // Iterator Archetype Classes
-
- template <class T, int I = 0>
- class input_iterator_archetype
- {
- private:
- typedef input_iterator_archetype self;
- public:
- typedef std::input_iterator_tag iterator_category;
- typedef T value_type;
- struct reference {
- operator const value_type&() const { return static_object<T>::get(); }
- };
- typedef const T* pointer;
- typedef std::ptrdiff_t difference_type;
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return reference(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- };
-
- template <class T>
- class input_iterator_archetype_no_proxy
- {
- private:
- typedef input_iterator_archetype_no_proxy self;
- public:
- typedef std::input_iterator_tag iterator_category;
- typedef T value_type;
- typedef const T& reference;
- typedef const T* pointer;
- typedef std::ptrdiff_t difference_type;
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- };
-
- template <class T>
- struct output_proxy {
- output_proxy& operator=(const T&) { return *this; }
- };
-
- template <class T>
- class output_iterator_archetype
- {
- public:
- typedef output_iterator_archetype self;
- public:
- typedef std::output_iterator_tag iterator_category;
- typedef output_proxy<T> value_type;
- typedef output_proxy<T> reference;
- typedef void pointer;
- typedef void difference_type;
- output_iterator_archetype(detail::dummy_constructor) { }
- output_iterator_archetype(const self&) { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return output_proxy<T>(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- private:
- output_iterator_archetype() { }
- };
-
- template <class T>
- class input_output_iterator_archetype
- {
- private:
- typedef input_output_iterator_archetype self;
- struct in_out_tag : public std::input_iterator_tag, public std::output_iterator_tag { };
- public:
- typedef in_out_tag iterator_category;
- typedef T value_type;
- struct reference {
- reference& operator=(const T&) { return *this; }
- operator value_type() { return static_object<T>::get(); }
- };
- typedef const T* pointer;
- typedef std::ptrdiff_t difference_type;
- input_output_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return reference(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- };
-
- template <class T>
- class forward_iterator_archetype
- {
- public:
- typedef forward_iterator_archetype self;
- public:
- typedef std::forward_iterator_tag iterator_category;
- typedef T value_type;
- typedef const T& reference;
- typedef T const* pointer;
- typedef std::ptrdiff_t difference_type;
- forward_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- };
-
- template <class T>
- class mutable_forward_iterator_archetype
- {
- public:
- typedef mutable_forward_iterator_archetype self;
- public:
- typedef std::forward_iterator_tag iterator_category;
- typedef T value_type;
- typedef T& reference;
- typedef T* pointer;
- typedef std::ptrdiff_t difference_type;
- mutable_forward_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- };
-
- template <class T>
- class bidirectional_iterator_archetype
- {
- public:
- typedef bidirectional_iterator_archetype self;
- public:
- typedef std::bidirectional_iterator_tag iterator_category;
- typedef T value_type;
- typedef const T& reference;
- typedef T* pointer;
- typedef std::ptrdiff_t difference_type;
- bidirectional_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- self& operator--() { return *this; }
- self operator--(int) { return *this; }
- };
-
- template <class T>
- class mutable_bidirectional_iterator_archetype
- {
- public:
- typedef mutable_bidirectional_iterator_archetype self;
- public:
- typedef std::bidirectional_iterator_tag iterator_category;
- typedef T value_type;
- typedef T& reference;
- typedef T* pointer;
- typedef std::ptrdiff_t difference_type;
- mutable_bidirectional_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- self& operator--() { return *this; }
- self operator--(int) { return *this; }
- };
-
- template <class T>
- class random_access_iterator_archetype
- {
- public:
- typedef random_access_iterator_archetype self;
- public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef T value_type;
- typedef const T& reference;
- typedef T* pointer;
- typedef std::ptrdiff_t difference_type;
- random_access_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- self& operator--() { return *this; }
- self operator--(int) { return *this; }
- reference operator[](difference_type) const
- { return static_object<T>::get(); }
- self& operator+=(difference_type) { return *this; }
- self& operator-=(difference_type) { return *this; }
- difference_type operator-(const self&) const
- { return difference_type(); }
- self operator+(difference_type) const { return *this; }
- self operator-(difference_type) const { return *this; }
- bool operator<(const self&) const { return true; }
- bool operator<=(const self&) const { return true; }
- bool operator>(const self&) const { return true; }
- bool operator>=(const self&) const { return true; }
- };
- template <class T>
- random_access_iterator_archetype<T>
- operator+(typename random_access_iterator_archetype<T>::difference_type,
- const random_access_iterator_archetype<T>& x)
- { return x; }
-
-
- template <class T>
- class mutable_random_access_iterator_archetype
- {
- public:
- typedef mutable_random_access_iterator_archetype self;
- public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef T value_type;
- typedef T& reference;
- typedef T* pointer;
- typedef std::ptrdiff_t difference_type;
- mutable_random_access_iterator_archetype() { }
- self& operator=(const self&) { return *this; }
- bool operator==(const self&) const { return true; }
- bool operator!=(const self&) const { return true; }
- reference operator*() const { return static_object<T>::get(); }
- self& operator++() { return *this; }
- self operator++(int) { return *this; }
- self& operator--() { return *this; }
- self operator--(int) { return *this; }
- reference operator[](difference_type) const
- { return static_object<T>::get(); }
- self& operator+=(difference_type) { return *this; }
- self& operator-=(difference_type) { return *this; }
- difference_type operator-(const self&) const
- { return difference_type(); }
- self operator+(difference_type) const { return *this; }
- self operator-(difference_type) const { return *this; }
- bool operator<(const self&) const { return true; }
- bool operator<=(const self&) const { return true; }
- bool operator>(const self&) const { return true; }
- bool operator>=(const self&) const { return true; }
- };
- template <class T>
- mutable_random_access_iterator_archetype<T>
- operator+
- (typename mutable_random_access_iterator_archetype<T>::difference_type,
- const mutable_random_access_iterator_archetype<T>& x)
- { return x; }
-
-} // namespace boost
-
-#endif // BOOST_CONCEPT_ARCHETYPES_H
+++ /dev/null
-//
-// (C) Copyright Jeremy Siek 2000.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Revision History:
-// 05 May 2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek)
-// 02 April 2001: Removed limits header altogether. (Jeremy Siek)
-// 01 April 2001: Modified to use new <boost/limits.hpp> header. (JMaddock)
-//
-
-// See http://www.boost.org/libs/concept_check for documentation.
-
-#ifndef BOOST_CONCEPT_CHECKS_HPP
-#define BOOST_CONCEPT_CHECKS_HPP
-
-#include <boost/config.hpp>
-#include <boost/iterator.hpp>
-#include <boost/type_traits/conversion_traits.hpp>
-#include <utility>
-#include <boost/type_traits/conversion_traits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/mpl/identity.hpp>
-
-
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 || defined(__BORLANDC__)
-#define BOOST_FPTR
-#else
-#define BOOST_FPTR &
-#endif
-
-namespace boost {
-
-/*
- "inline" is used for ignore_unused_variable_warning()
- and function_requires() to make sure there is no
- overhead with g++.
- */
-
-template <class T> inline void ignore_unused_variable_warning(const T&) { }
-
-// the unused, defaulted parameter is a workaround for MSVC and Compaq C++
-template <class Concept>
-inline void function_requires(mpl::identity<Concept>* = 0)
-{
-#if !defined(NDEBUG)
- void (Concept::*x)() = BOOST_FPTR Concept::constraints;
- ignore_unused_variable_warning(x);
-#endif
-}
-
-#define BOOST_CLASS_REQUIRE(type_var, ns, concept) \
- typedef void (ns::concept <type_var>::* func##type_var##concept)(); \
- template <func##type_var##concept Tp1_> \
- struct concept_checking_##type_var##concept { }; \
- typedef concept_checking_##type_var##concept< \
- BOOST_FPTR ns::concept<type_var>::constraints> \
- concept_checking_typedef_##type_var##concept
-
-#define BOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept) \
- typedef void (ns::concept <type_var1,type_var2>::* \
- func##type_var1##type_var2##concept)(); \
- template <func##type_var1##type_var2##concept Tp1_> \
- struct concept_checking_##type_var1##type_var2##concept { }; \
- typedef concept_checking_##type_var1##type_var2##concept< \
- BOOST_FPTR ns::concept<type_var1,type_var2>::constraints> \
- concept_checking_typedef_##type_var1##type_var2##concept
-
-#define BOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept) \
- typedef void (ns::concept <tv1,tv2,tv3>::* \
- func##tv1##tv2##tv3##concept)(); \
- template <func##tv1##tv2##tv3##concept Tp1_> \
- struct concept_checking_##tv1##tv2##tv3##concept { }; \
- typedef concept_checking_##tv1##tv2##tv3##concept< \
- BOOST_FPTR ns::concept<tv1,tv2,tv3>::constraints> \
- concept_checking_typedef_##tv1##tv2##tv3##concept
-
-#define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
- typedef void (ns::concept <tv1,tv2,tv3,tv4>::* \
- func##tv1##tv2##tv3##tv4##concept)(); \
- template <func##tv1##tv2##tv3##tv4##concept Tp1_> \
- struct concept_checking_##tv1##tv2##tv3##tv4##concept { }; \
- typedef concept_checking_##tv1##tv2##tv3##tv4##concept< \
- BOOST_FPTR ns::concept<tv1,tv2,tv3,tv4>::constraints> \
- concept_checking_typedef_##tv1##tv2##tv3##tv4##concept
-
-// NOTE: The BOOST_CLASS_REQUIRES (with an 'S' at the end) is deprecated.
-
-// The BOOST_CLASS_REQUIRES macros use function pointers as
-// template parameters, which VC++ does not support.
-
-#if defined(BOOST_NO_FUNCTION_PTR_TEMPLATE_PARAMETERS)
-
-#define BOOST_CLASS_REQUIRES(type_var, concept)
-#define BOOST_CLASS_REQUIRES2(type_var1, type_var2, concept)
-#define BOOST_CLASS_REQUIRES3(type_var1, type_var2, type_var3, concept)
-#define BOOST_CLASS_REQUIRES4(type_var1, type_var2, type_var3, type_var4, concept)
-
-#else
-
-#define BOOST_CLASS_REQUIRES(type_var, concept) \
- typedef void (concept <type_var>::* func##type_var##concept)(); \
- template <func##type_var##concept Tp1_> \
- struct concept_checking_##type_var##concept { }; \
- typedef concept_checking_##type_var##concept< \
- BOOST_FPTR concept <type_var>::constraints> \
- concept_checking_typedef_##type_var##concept
-
-#define BOOST_CLASS_REQUIRES2(type_var1, type_var2, concept) \
- typedef void (concept <type_var1,type_var2>::* func##type_var1##type_var2##concept)(); \
- template <func##type_var1##type_var2##concept Tp1_> \
- struct concept_checking_##type_var1##type_var2##concept { }; \
- typedef concept_checking_##type_var1##type_var2##concept< \
- BOOST_FPTR concept <type_var1,type_var2>::constraints> \
- concept_checking_typedef_##type_var1##type_var2##concept
-
-#define BOOST_CLASS_REQUIRES3(type_var1, type_var2, type_var3, concept) \
- typedef void (concept <type_var1,type_var2,type_var3>::* func##type_var1##type_var2##type_var3##concept)(); \
- template <func##type_var1##type_var2##type_var3##concept Tp1_> \
- struct concept_checking_##type_var1##type_var2##type_var3##concept { }; \
- typedef concept_checking_##type_var1##type_var2##type_var3##concept< \
- BOOST_FPTR concept <type_var1,type_var2,type_var3>::constraints> \
- concept_checking_typedef_##type_var1##type_var2##type_var3##concept
-
-#define BOOST_CLASS_REQUIRES4(type_var1, type_var2, type_var3, type_var4, concept) \
- typedef void (concept <type_var1,type_var2,type_var3,type_var4>::* func##type_var1##type_var2##type_var3##type_var4##concept)(); \
- template <func##type_var1##type_var2##type_var3##type_var4##concept Tp1_> \
- struct concept_checking_##type_var1##type_var2##type_var3##type_var4##concept { }; \
- typedef concept_checking_##type_var1##type_var2##type_var3##type_var4##concept< \
- BOOST_FPTR concept <type_var1,type_var2,type_var3,type_var4>::constraints> \
- concept_checking_typedef_##type_var1##type_var2##type_var3##type_var4##concept
-
-
-#endif
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T, class U>
-struct require_same { };
-
-template <class T>
-struct require_same<T,T> { typedef T type; };
-#else
-// This version does not perform checking, but will not do any harm.
-template <class T, class U>
-struct require_same { typedef T type; };
-#endif
-
- template <class T>
- struct IntegerConcept {
- void constraints() {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- x.error_type_must_be_an_integer_type();
-#endif
- }
- T x;
- };
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <> struct IntegerConcept<short> { void constraints() {} };
- template <> struct IntegerConcept<unsigned short> { void constraints() {} };
- template <> struct IntegerConcept<int> { void constraints() {} };
- template <> struct IntegerConcept<unsigned int> { void constraints() {} };
- template <> struct IntegerConcept<long> { void constraints() {} };
- template <> struct IntegerConcept<unsigned long> { void constraints() {} };
- // etc.
-#endif
-
- template <class T>
- struct SignedIntegerConcept {
- void constraints() {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- x.error_type_must_be_a_signed_integer_type();
-#endif
- }
- T x;
- };
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <> struct SignedIntegerConcept<short> { void constraints() {} };
- template <> struct SignedIntegerConcept<int> { void constraints() {} };
- template <> struct SignedIntegerConcept<long> { void constraints() {} };
-# if defined(BOOST_HAS_LONG_LONG)
- template <> struct SignedIntegerConcept< ::boost::long_long_type> { void constraints() {} };
-# endif
- // etc.
-#endif
-
- template <class T>
- struct UnsignedIntegerConcept {
- void constraints() {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- x.error_type_must_be_an_unsigned_integer_type();
-#endif
- }
- T x;
- };
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <> struct UnsignedIntegerConcept<unsigned short>
- { void constraints() {} };
- template <> struct UnsignedIntegerConcept<unsigned int>
- { void constraints() {} };
- template <> struct UnsignedIntegerConcept<unsigned long>
- { void constraints() {} };
- // etc.
-#endif
-
- //===========================================================================
- // Basic Concepts
-
- template <class TT>
- struct DefaultConstructibleConcept
- {
- void constraints() {
- TT a; // require default constructor
- ignore_unused_variable_warning(a);
- }
- };
-
- template <class TT>
- struct AssignableConcept
- {
- void constraints() {
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
- a = a; // require assignment operator
-#endif
- const_constraints(a);
- }
- void const_constraints(const TT& b) {
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
- a = b; // const required for argument to assignment
-#endif
- }
- TT a;
- };
-
- template <class TT>
- struct CopyConstructibleConcept
- {
- void constraints() {
- TT a(b); // require copy constructor
- TT* ptr = &a; // require address of operator
- const_constraints(a);
- ignore_unused_variable_warning(ptr);
- }
- void const_constraints(const TT& a) {
- TT c(a); // require const copy constructor
- const TT* ptr = &a; // require const address of operator
- ignore_unused_variable_warning(c);
- ignore_unused_variable_warning(ptr);
- }
- TT b;
- };
-
- // The SGI STL version of Assignable requires copy constructor and operator=
- template <class TT>
- struct SGIAssignableConcept
- {
- void constraints() {
- TT b(a);
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
- a = a; // require assignment operator
-#endif
- const_constraints(a);
- ignore_unused_variable_warning(b);
- }
- void const_constraints(const TT& b) {
- TT c(b);
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
- a = b; // const required for argument to assignment
-#endif
- ignore_unused_variable_warning(c);
- }
- TT a;
- };
-
- template <class X, class Y>
- struct ConvertibleConcept
- {
- void constraints() {
- Y y = x;
- ignore_unused_variable_warning(y);
- }
- X x;
- };
-
- // The C++ standard requirements for many concepts talk about return
- // types that must be "convertible to bool". The problem with this
- // requirement is that it leaves the door open for evil proxies that
- // define things like operator|| with strange return types. Two
- // possible solutions are:
- // 1) require the return type to be exactly bool
- // 2) stay with convertible to bool, and also
- // specify stuff about all the logical operators.
- // For now we just test for convertible to bool.
- template <class TT>
- void require_boolean_expr(const TT& t) {
- bool x = t;
- ignore_unused_variable_warning(x);
- }
-
- template <class TT>
- struct EqualityComparableConcept
- {
- void constraints() {
- require_boolean_expr(a == b);
- require_boolean_expr(a != b);
- }
- TT a, b;
- };
-
- template <class TT>
- struct LessThanComparableConcept
- {
- void constraints() {
- require_boolean_expr(a < b);
- }
- TT a, b;
- };
-
- // This is equivalent to SGI STL's LessThanComparable.
- template <class TT>
- struct ComparableConcept
- {
- void constraints() {
- require_boolean_expr(a < b);
- require_boolean_expr(a > b);
- require_boolean_expr(a <= b);
- require_boolean_expr(a >= b);
- }
- TT a, b;
- };
-
-#define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME) \
- template <class First, class Second> \
- struct NAME { \
- void constraints() { (void)constraints_(); } \
- bool constraints_() { \
- return a OP b; \
- } \
- First a; \
- Second b; \
- }
-
-#define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME) \
- template <class Ret, class First, class Second> \
- struct NAME { \
- void constraints() { (void)constraints_(); } \
- Ret constraints_() { \
- return a OP b; \
- } \
- First a; \
- Second b; \
- }
-
- BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOpConcept);
- BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOpConcept);
- BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOpConcept);
- BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOpConcept);
- BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOpConcept);
- BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOpConcept);
-
- BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOpConcept);
- BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOpConcept);
- BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOpConcept);
- BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOpConcept);
- BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOpConcept);
-
- //===========================================================================
- // Function Object Concepts
-
- template <class Func, class Return>
- struct GeneratorConcept
- {
- void constraints() {
- const Return& r = f(); // require operator() member function
- ignore_unused_variable_warning(r);
- }
- Func f;
- };
-
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Func>
- struct GeneratorConcept<Func,void>
- {
- void constraints() {
- f(); // require operator() member function
- }
- Func f;
- };
-#endif
-
- template <class Func, class Return, class Arg>
- struct UnaryFunctionConcept
- {
- // required in case any of our template args are const-qualified:
- UnaryFunctionConcept();
-
- void constraints() {
- r = f(arg); // require operator()
- }
- Func f;
- Arg arg;
- Return r;
- };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Func, class Arg>
- struct UnaryFunctionConcept<Func, void, Arg> {
- void constraints() {
- f(arg); // require operator()
- }
- Func f;
- Arg arg;
- };
-#endif
-
- template <class Func, class Return, class First, class Second>
- struct BinaryFunctionConcept
- {
- void constraints() {
- r = f(first, second); // require operator()
- }
- Func f;
- First first;
- Second second;
- Return r;
- };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Func, class First, class Second>
- struct BinaryFunctionConcept<Func, void, First, Second>
- {
- void constraints() {
- f(first, second); // require operator()
- }
- Func f;
- First first;
- Second second;
- };
-#endif
-
- template <class Func, class Arg>
- struct UnaryPredicateConcept
- {
- void constraints() {
- require_boolean_expr(f(arg)); // require operator() returning bool
- }
- Func f;
- Arg arg;
- };
-
- template <class Func, class First, class Second>
- struct BinaryPredicateConcept
- {
- void constraints() {
- require_boolean_expr(f(a, b)); // require operator() returning bool
- }
- Func f;
- First a;
- Second b;
- };
-
- // use this when functor is used inside a container class like std::set
- template <class Func, class First, class Second>
- struct Const_BinaryPredicateConcept {
- void constraints() {
- const_constraints(f);
- }
- void const_constraints(const Func& fun) {
- function_requires<BinaryPredicateConcept<Func, First, Second> >();
- // operator() must be a const member function
- require_boolean_expr(fun(a, b));
- }
- Func f;
- First a;
- Second b;
- };
-
- template <class Func, class Return>
- struct AdaptableGeneratorConcept
- {
- void constraints() {
- typedef typename Func::result_type result_type;
- BOOST_STATIC_ASSERT((is_convertible<result_type, Return>::value));
- function_requires< GeneratorConcept<Func, result_type> >();
- }
- };
-
- template <class Func, class Return, class Arg>
- struct AdaptableUnaryFunctionConcept
- {
- void constraints() {
- typedef typename Func::argument_type argument_type;
- typedef typename Func::result_type result_type;
- BOOST_STATIC_ASSERT((is_convertible<result_type, Return>::value));
- BOOST_STATIC_ASSERT((is_convertible<Arg, argument_type>::value));
- function_requires< UnaryFunctionConcept<Func, result_type, argument_type> >();
- }
- };
-
- template <class Func, class Return, class First, class Second>
- struct AdaptableBinaryFunctionConcept
- {
- void constraints() {
- typedef typename Func::first_argument_type first_argument_type;
- typedef typename Func::second_argument_type second_argument_type;
- typedef typename Func::result_type result_type;
- BOOST_STATIC_ASSERT((is_convertible<result_type, Return>::value));
- BOOST_STATIC_ASSERT((is_convertible<First, first_argument_type>::value));
- BOOST_STATIC_ASSERT((is_convertible<Second, second_argument_type>::value));
- function_requires< BinaryFunctionConcept<Func, result_type,
- first_argument_type, second_argument_type> >();
- }
- };
-
- template <class Func, class Arg>
- struct AdaptablePredicateConcept
- {
- void constraints() {
- function_requires< UnaryPredicateConcept<Func, Arg> >();
- function_requires< AdaptableUnaryFunctionConcept<Func, bool, Arg> >();
- }
- };
-
- template <class Func, class First, class Second>
- struct AdaptableBinaryPredicateConcept
- {
- void constraints() {
- function_requires< BinaryPredicateConcept<Func, First, Second> >();
- function_requires< AdaptableBinaryFunctionConcept<Func, bool, First, Second> >();
- }
- };
-
- //===========================================================================
- // Iterator Concepts
-
- template <class TT>
- struct InputIteratorConcept
- {
- void constraints() {
- function_requires< AssignableConcept<TT> >();
- function_requires< EqualityComparableConcept<TT> >();
- TT j(i);
- (void)*i; // require dereference operator
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- // require iterator_traits typedef's
- typedef typename std::iterator_traits<TT>::difference_type D;
- // Hmm, the following is a bit fragile
- //function_requires< SignedIntegerConcept<D> >();
- typedef typename std::iterator_traits<TT>::reference R;
- typedef typename std::iterator_traits<TT>::pointer P;
- typedef typename std::iterator_traits<TT>::iterator_category C;
- function_requires< ConvertibleConcept<C, std::input_iterator_tag> >();
-#endif
- ++j; // require preincrement operator
- i++; // require postincrement operator
- }
- TT i;
- };
-
- template <class TT, class ValueT>
- struct OutputIteratorConcept
- {
- void constraints() {
- function_requires< AssignableConcept<TT> >();
- ++i; // require preincrement operator
- i++; // require postincrement operator
- *i++ = t; // require postincrement and assignment
- }
- TT i, j;
- ValueT t;
- };
-
- template <class TT>
- struct ForwardIteratorConcept
- {
- void constraints() {
- function_requires< InputIteratorConcept<TT> >();
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typedef typename std::iterator_traits<TT>::iterator_category C;
- function_requires< ConvertibleConcept<C, std::forward_iterator_tag> >();
- typedef typename std::iterator_traits<TT>::reference reference;
- reference r = *i;
- ignore_unused_variable_warning(r);
-#endif
- }
- TT i;
- };
-
- template <class TT>
- struct Mutable_ForwardIteratorConcept
- {
- void constraints() {
- function_requires< ForwardIteratorConcept<TT> >();
- *i++ = *i; // require postincrement and assignment
- }
- TT i;
- };
-
- template <class TT>
- struct BidirectionalIteratorConcept
- {
- void constraints() {
- function_requires< ForwardIteratorConcept<TT> >();
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typedef typename std::iterator_traits<TT>::iterator_category C;
- function_requires< ConvertibleConcept<C,
- std::bidirectional_iterator_tag> >();
-#endif
- --i; // require predecrement operator
- i--; // require postdecrement operator
- }
- TT i;
- };
-
- template <class TT>
- struct Mutable_BidirectionalIteratorConcept
- {
- void constraints() {
- function_requires< BidirectionalIteratorConcept<TT> >();
- function_requires< Mutable_ForwardIteratorConcept<TT> >();
- *i-- = *i; // require postdecrement and assignment
- }
- TT i;
- };
-
-
- template <class TT>
- struct RandomAccessIteratorConcept
- {
- void constraints() {
- function_requires< BidirectionalIteratorConcept<TT> >();
- function_requires< ComparableConcept<TT> >();
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typedef typename std::iterator_traits<TT>::iterator_category C;
- function_requires< ConvertibleConcept< C,
- std::random_access_iterator_tag> >();
- typedef typename std::iterator_traits<TT>::reference R;
-#endif
-
- i += n; // require assignment addition operator
- i = i + n; i = n + i; // require addition with difference type
- i -= n; // require assignment subtraction operator
- i = i - n; // require subtraction with difference type
- n = i - j; // require difference operator
- (void)i[n]; // require element access operator
- }
- TT a, b;
- TT i, j;
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typename std::iterator_traits<TT>::difference_type n;
-#else
- std::ptrdiff_t n;
-#endif
- };
-
- template <class TT>
- struct Mutable_RandomAccessIteratorConcept
- {
- void constraints() {
- function_requires< RandomAccessIteratorConcept<TT> >();
- function_requires< Mutable_BidirectionalIteratorConcept<TT> >();
- i[n] = *i; // require element access and assignment
- }
- TT i;
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typename std::iterator_traits<TT>::difference_type n;
-#else
- std::ptrdiff_t n;
-#endif
- };
-
- //===========================================================================
- // Container Concepts
-
- template <class Container>
- struct ContainerConcept
- {
- typedef typename Container::value_type value_type;
- typedef typename Container::difference_type difference_type;
- typedef typename Container::size_type size_type;
- typedef typename Container::const_reference const_reference;
- typedef typename Container::const_pointer const_pointer;
- typedef typename Container::const_iterator const_iterator;
-
- void constraints() {
- function_requires< InputIteratorConcept<const_iterator> >();
- function_requires< AssignableConcept<Container> >();
- const_constraints(c);
- }
- void const_constraints(const Container& cc) {
- i = cc.begin();
- i = cc.end();
- n = cc.size();
- n = cc.max_size();
- b = cc.empty();
- }
- Container c;
- bool b;
- const_iterator i;
- size_type n;
- };
-
- template <class Container>
- struct Mutable_ContainerConcept
- {
- typedef typename Container::value_type value_type;
- typedef typename Container::reference reference;
- typedef typename Container::iterator iterator;
- typedef typename Container::pointer pointer;
-
- void constraints() {
- function_requires< ContainerConcept<Container> >();
- function_requires< AssignableConcept<value_type> >();
- function_requires< InputIteratorConcept<iterator> >();
-
- i = c.begin();
- i = c.end();
- c.swap(c2);
- }
- iterator i;
- Container c, c2;
- };
-
- template <class ForwardContainer>
- struct ForwardContainerConcept
- {
- void constraints() {
- function_requires< ContainerConcept<ForwardContainer> >();
- typedef typename ForwardContainer::const_iterator const_iterator;
- function_requires< ForwardIteratorConcept<const_iterator> >();
- }
- };
-
- template <class ForwardContainer>
- struct Mutable_ForwardContainerConcept
- {
- void constraints() {
- function_requires< ForwardContainerConcept<ForwardContainer> >();
- function_requires< Mutable_ContainerConcept<ForwardContainer> >();
- typedef typename ForwardContainer::iterator iterator;
- function_requires< Mutable_ForwardIteratorConcept<iterator> >();
- }
- };
-
- template <class ReversibleContainer>
- struct ReversibleContainerConcept
- {
- typedef typename ReversibleContainer::const_iterator const_iterator;
- typedef typename ReversibleContainer::const_reverse_iterator
- const_reverse_iterator;
-
- void constraints() {
- function_requires< ForwardContainerConcept<ReversibleContainer> >();
- function_requires< BidirectionalIteratorConcept<const_iterator> >();
- function_requires<
- BidirectionalIteratorConcept<const_reverse_iterator> >();
- const_constraints(c);
- }
- void const_constraints(const ReversibleContainer& cc) {
- const_reverse_iterator i = cc.rbegin();
- i = cc.rend();
- }
- ReversibleContainer c;
- };
-
- template <class ReversibleContainer>
- struct Mutable_ReversibleContainerConcept
- {
- typedef typename ReversibleContainer::iterator iterator;
- typedef typename ReversibleContainer::reverse_iterator reverse_iterator;
-
- void constraints() {
- function_requires< ReversibleContainerConcept<ReversibleContainer> >();
- function_requires<
- Mutable_ForwardContainerConcept<ReversibleContainer> >();
- function_requires< Mutable_BidirectionalIteratorConcept<iterator> >();
- function_requires<
- Mutable_BidirectionalIteratorConcept<reverse_iterator> >();
-
- reverse_iterator i = c.rbegin();
- i = c.rend();
- }
- ReversibleContainer c;
- };
-
- template <class RandomAccessContainer>
- struct RandomAccessContainerConcept
- {
- typedef typename RandomAccessContainer::size_type size_type;
- typedef typename RandomAccessContainer::const_reference const_reference;
- typedef typename RandomAccessContainer::const_iterator const_iterator;
- typedef typename RandomAccessContainer::const_reverse_iterator
- const_reverse_iterator;
-
- void constraints() {
- function_requires< ReversibleContainerConcept<RandomAccessContainer> >();
- function_requires< RandomAccessIteratorConcept<const_iterator> >();
- function_requires<
- RandomAccessIteratorConcept<const_reverse_iterator> >();
-
- const_constraints(c);
- }
- void const_constraints(const RandomAccessContainer& cc) {
- const_reference r = cc[n];
- ignore_unused_variable_warning(r);
- }
- RandomAccessContainer c;
- size_type n;
- };
-
- template <class RandomAccessContainer>
- struct Mutable_RandomAccessContainerConcept
- {
- typedef typename RandomAccessContainer::size_type size_type;
- typedef typename RandomAccessContainer::reference reference;
- typedef typename RandomAccessContainer::iterator iterator;
- typedef typename RandomAccessContainer::reverse_iterator reverse_iterator;
-
- void constraints() {
- function_requires<
- RandomAccessContainerConcept<RandomAccessContainer> >();
- function_requires<
- Mutable_ReversibleContainerConcept<RandomAccessContainer> >();
- function_requires< Mutable_RandomAccessIteratorConcept<iterator> >();
- function_requires<
- Mutable_RandomAccessIteratorConcept<reverse_iterator> >();
-
- reference r = c[i];
- ignore_unused_variable_warning(r);
- }
- size_type i;
- RandomAccessContainer c;
- };
-
- // A Sequence is inherently mutable
- template <class Sequence>
- struct SequenceConcept
- {
-
- typedef typename Sequence::reference reference;
- typedef typename Sequence::const_reference const_reference;
-
- void constraints() {
- // Matt Austern's book puts DefaultConstructible here, the C++
- // standard places it in Container
- // function_requires< DefaultConstructible<Sequence> >();
- function_requires< Mutable_ForwardContainerConcept<Sequence> >();
- function_requires< DefaultConstructibleConcept<Sequence> >();
-
- Sequence
- c(n),
- c2(n, t),
- c3(first, last);
-
- c.insert(p, t);
- c.insert(p, n, t);
- c.insert(p, first, last);
-
- c.erase(p);
- c.erase(p, q);
-
- reference r = c.front();
-
- ignore_unused_variable_warning(c);
- ignore_unused_variable_warning(c2);
- ignore_unused_variable_warning(c3);
- ignore_unused_variable_warning(r);
- const_constraints(c);
- }
- void const_constraints(const Sequence& c) {
- const_reference r = c.front();
- ignore_unused_variable_warning(r);
- }
- typename Sequence::value_type t;
- typename Sequence::size_type n;
- typename Sequence::value_type* first, *last;
- typename Sequence::iterator p, q;
- };
-
- template <class FrontInsertionSequence>
- struct FrontInsertionSequenceConcept
- {
- void constraints() {
- function_requires< SequenceConcept<FrontInsertionSequence> >();
-
- c.push_front(t);
- c.pop_front();
- }
- FrontInsertionSequence c;
- typename FrontInsertionSequence::value_type t;
- };
-
- template <class BackInsertionSequence>
- struct BackInsertionSequenceConcept
- {
- typedef typename BackInsertionSequence::reference reference;
- typedef typename BackInsertionSequence::const_reference const_reference;
-
- void constraints() {
- function_requires< SequenceConcept<BackInsertionSequence> >();
-
- c.push_back(t);
- c.pop_back();
- reference r = c.back();
- ignore_unused_variable_warning(r);
- }
- void const_constraints(const BackInsertionSequence& cc) {
- const_reference r = cc.back();
- ignore_unused_variable_warning(r);
- };
- BackInsertionSequence c;
- typename BackInsertionSequence::value_type t;
- };
-
- template <class AssociativeContainer>
- struct AssociativeContainerConcept
- {
- void constraints() {
- function_requires< ForwardContainerConcept<AssociativeContainer> >();
- function_requires< DefaultConstructibleConcept<AssociativeContainer> >();
-
- i = c.find(k);
- r = c.equal_range(k);
- c.erase(k);
- c.erase(i);
- c.erase(r.first, r.second);
- const_constraints(c);
- }
- void const_constraints(const AssociativeContainer& cc) {
- ci = cc.find(k);
- n = cc.count(k);
- cr = cc.equal_range(k);
- }
- typedef typename AssociativeContainer::iterator iterator;
- typedef typename AssociativeContainer::const_iterator const_iterator;
-
- AssociativeContainer c;
- iterator i;
- std::pair<iterator,iterator> r;
- const_iterator ci;
- std::pair<const_iterator,const_iterator> cr;
- typename AssociativeContainer::key_type k;
- typename AssociativeContainer::size_type n;
- };
-
- template <class UniqueAssociativeContainer>
- struct UniqueAssociativeContainerConcept
- {
- void constraints() {
- function_requires< AssociativeContainerConcept<UniqueAssociativeContainer> >();
-
- UniqueAssociativeContainer c(first, last);
-
- pos_flag = c.insert(t);
- c.insert(first, last);
-
- ignore_unused_variable_warning(c);
- }
- std::pair<typename UniqueAssociativeContainer::iterator, bool> pos_flag;
- typename UniqueAssociativeContainer::value_type t;
- typename UniqueAssociativeContainer::value_type* first, *last;
- };
-
- template <class MultipleAssociativeContainer>
- struct MultipleAssociativeContainerConcept
- {
- void constraints() {
- function_requires< AssociativeContainerConcept<MultipleAssociativeContainer> >();
-
- MultipleAssociativeContainer c(first, last);
-
- pos = c.insert(t);
- c.insert(first, last);
-
- ignore_unused_variable_warning(c);
- ignore_unused_variable_warning(pos);
- }
- typename MultipleAssociativeContainer::iterator pos;
- typename MultipleAssociativeContainer::value_type t;
- typename MultipleAssociativeContainer::value_type* first, *last;
- };
-
- template <class SimpleAssociativeContainer>
- struct SimpleAssociativeContainerConcept
- {
- void constraints() {
- function_requires< AssociativeContainerConcept<SimpleAssociativeContainer> >();
- typedef typename SimpleAssociativeContainer::key_type key_type;
- typedef typename SimpleAssociativeContainer::value_type value_type;
- typedef typename require_same<key_type, value_type>::type req;
- }
- };
-
- template <class SimpleAssociativeContainer>
- struct PairAssociativeContainerConcept
- {
- void constraints() {
- function_requires< AssociativeContainerConcept<SimpleAssociativeContainer> >();
- typedef typename SimpleAssociativeContainer::key_type key_type;
- typedef typename SimpleAssociativeContainer::value_type value_type;
- typedef typename SimpleAssociativeContainer::mapped_type mapped_type;
- typedef std::pair<const key_type, mapped_type> required_value_type;
- typedef typename require_same<value_type, required_value_type>::type req;
- }
- };
-
- template <class SortedAssociativeContainer>
- struct SortedAssociativeContainerConcept
- {
- void constraints() {
- function_requires< AssociativeContainerConcept<SortedAssociativeContainer> >();
- function_requires< ReversibleContainerConcept<SortedAssociativeContainer> >();
-
- SortedAssociativeContainer
- c(kc),
- c2(first, last),
- c3(first, last, kc);
-
- p = c.upper_bound(k);
- p = c.lower_bound(k);
- r = c.equal_range(k);
-
- c.insert(p, t);
-
- ignore_unused_variable_warning(c);
- ignore_unused_variable_warning(c2);
- ignore_unused_variable_warning(c3);
- }
- void const_constraints(const SortedAssociativeContainer& c) {
- kc = c.key_comp();
- vc = c.value_comp();
-
- cp = c.upper_bound(k);
- cp = c.lower_bound(k);
- cr = c.equal_range(k);
- }
- typename SortedAssociativeContainer::key_compare kc;
- typename SortedAssociativeContainer::value_compare vc;
- typename SortedAssociativeContainer::value_type t;
- typename SortedAssociativeContainer::key_type k;
- typedef typename SortedAssociativeContainer::iterator iterator;
- typedef typename SortedAssociativeContainer::const_iterator const_iterator;
- iterator p;
- const_iterator cp;
- std::pair<iterator,iterator> r;
- std::pair<const_iterator,const_iterator> cr;
- typename SortedAssociativeContainer::value_type* first, *last;
- };
-
- // HashedAssociativeContainer
-
-} // namespace boost
-
-#endif // BOOST_CONCEPT_CHECKS_HPP
-
+++ /dev/null
-// Boost config.hpp configuration header file ------------------------------//
-
-// (C) Copyright John Maddock 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/libs/config for most recent version.
-
-// Boost config.hpp policy and rationale documentation has been moved to
-// http://www.boost.org/libs/config
-//
-// CAUTION: This file is intended to be completely stable -
-// DO NOT MODIFY THIS FILE!
-//
-
-#ifndef BOOST_CONFIG_HPP
-#define BOOST_CONFIG_HPP
-
-// if we don't have a user config, then use the default location:
-#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
-# define BOOST_USER_CONFIG <boost/config/user.hpp>
-#endif
-// include it first:
-#ifdef BOOST_USER_CONFIG
-# include BOOST_USER_CONFIG
-#endif
-
-// if we don't have a compiler config set, try and find one:
-#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
-# include <boost/config/select_compiler_config.hpp>
-#endif
-// if we have a compiler config, include it now:
-#ifdef BOOST_COMPILER_CONFIG
-# include BOOST_COMPILER_CONFIG
-#endif
-
-// if we don't have a std library config set, try and find one:
-#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
-# include <boost/config/select_stdlib_config.hpp>
-#endif
-// if we have a std library config, include it now:
-#ifdef BOOST_STDLIB_CONFIG
-# include BOOST_STDLIB_CONFIG
-#endif
-
-// if we don't have a platform config set, try and find one:
-#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
-# include <boost/config/select_platform_config.hpp>
-#endif
-// if we have a platform config, include it now:
-#ifdef BOOST_PLATFORM_CONFIG
-# include BOOST_PLATFORM_CONFIG
-#endif
-
-// get config suffix code:
-#include <boost/config/suffix.hpp>
-
-#endif // BOOST_CONFIG_HPP
-
-
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// (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)
-
-// for C++ Builder the following options effect the ABI:
-//
-// -b (on or off - effect emum sizes)
-// -Vx (on or off - empty members)
-// -Ve (on or off - empty base classes)
-// -aX (alignment - 5 options).
-// -pX (Calling convention - 4 options)
-// -VmX (member pointer size and layout - 5 options)
-// -VC (on or off, changes name mangling)
-// -Vl (on or off, changes struct layout).
-
-// In addition the following warnings are sufficiently annoying (and
-// unfixable) to have them turned off by default:
-//
-// 8027 - functions containing [for|while] loops are not expanded inline
-// 8026 - functions taking class by value arguments are not expanded inline
-
-#pragma nopushoptwarn
-# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026
-
-
-
+++ /dev/null
-// (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)
-
-# pragma option pop
-#pragma nopushoptwarn
-
-
-
-
-
+++ /dev/null
-// (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)
-
-#pragma pack(push,8)
-
-
+++ /dev/null
-// (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)
-
-#pragma pack(pop)
-
-
+++ /dev/null
-// abi_prefix header -------------------------------------------------------//
-
-// © 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_ABI_PREFIX_HPP
-# define BOOST_CONFIG_ABI_PREFIX_HPP
-#else
-# error double inclusion of header boost/config/abi_prefix.hpp is an error
-#endif
-
-#include <boost/config.hpp>
-
-// this must occur after all other includes and before any code appears:
-#ifdef BOOST_HAS_ABI_HEADERS
-# include BOOST_ABI_PREFIX
-#endif
+++ /dev/null
-// abi_sufffix header -------------------------------------------------------//
-
-// © 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).
-
-// This header should be #included AFTER code that was preceded by a #include
-// <boost/config/abi_prefix.hpp>.
-
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp
-#else
-# undef BOOST_CONFIG_ABI_PREFIX_HPP
-#endif
-
-// the suffix header occurs after all of our code:
-#ifdef BOOST_HAS_ABI_HEADERS
-# include BOOST_ABI_SUFFIX
-#endif
-
-
+++ /dev/null
-// (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)
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE auto_link.hpp
- * VERSION see <boost/version.hpp>
- * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
- */
-
-/*************************************************************************
-
-USAGE:
-~~~~~~
-
-Before including this header you must define one or more of define the following macros:
-
-BOOST_LIB_NAME: Required: A string containing the basename of the library,
- for example boost_regex.
-BOOST_LIB_TOOLSET: Optional: the base name of the toolset.
-BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
-BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
- of the library selected (useful for debugging).
-BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
- rather than a mangled-name version.
-
-These macros will be undef'ed at the end of the header, further this header
-has no include guards - so be sure to include it only once from your library!
-
-Algorithm:
-~~~~~~~~~~
-
-Libraries for Borland and Microsoft compilers are automatically
-selected here, the name of the lib is selected according to the following
-formula:
-
-BOOST_LIB_PREFIX
- + BOOST_LIB_NAME
- + "_"
- + BOOST_LIB_TOOLSET
- + BOOST_LIB_THREAD_OPT
- + BOOST_LIB_RT_OPT
- "-"
- + BOOST_LIB_VERSION
-
-These are defined as:
-
-BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
-
-BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
-
-BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
-
-BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
-
-BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
- contains one or more of the following letters after
- a hiphen:
-
- s static runtime (dynamic if not present).
- d debug build (release if not present).
- g debug/diagnostic runtime (release if not present).
- p STLPort Build.
-
-BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
-
-
-***************************************************************************/
-
-#ifdef __cplusplus
-# ifndef BOOST_CONFIG_HPP
-# include <boost/config.hpp>
-# endif
-#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
-//
-// C language compatability (no, honestly)
-//
-# define BOOST_MSVC _MSC_VER
-# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-# define BOOST_DO_STRINGIZE(X) #X
-#endif
-//
-// Only include what follows for known and supported compilers:
-//
-#if defined(BOOST_MSVC) \
- || defined(__BORLANDC__) \
- || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
- || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
-
-#ifndef BOOST_VERSION_HPP
-# include <boost/version.hpp>
-#endif
-
-#ifndef BOOST_LIB_NAME
-# error "Macro BOOST_LIB_NAME not set (internal error)"
-#endif
-
-//
-// error check:
-//
-#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
-# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
-# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
-# error "Incompatible build options"
-#endif
-//
-// select toolset if not defined already:
-//
-#ifndef BOOST_LIB_TOOLSET
-#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
-
- // vc6:
-# define BOOST_LIB_TOOLSET "vc6"
-
-#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
-
- // vc7:
-# define BOOST_LIB_TOOLSET "vc7"
-
-#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
-
- // vc71:
-# define BOOST_LIB_TOOLSET "vc71"
-
-#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
-
- // vc80:
-# define BOOST_LIB_TOOLSET "vc80"
-
-#elif defined(__BORLANDC__)
-
- // CBuilder 6:
-# define BOOST_LIB_TOOLSET "bcb"
-
-#elif defined(__ICL)
-
- // Intel C++, no version number:
-# define BOOST_LIB_TOOLSET "iw"
-
-#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
-
- // Metrowerks CodeWarrior 8.x
-# define BOOST_LIB_TOOLSET "cw8"
-
-#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
-
- // Metrowerks CodeWarrior 9.x
-# define BOOST_LIB_TOOLSET "cw9"
-
-#endif
-#endif // BOOST_LIB_TOOLSET
-
-//
-// select thread opt:
-//
-#if defined(_MT) || defined(__MT__)
-# define BOOST_LIB_THREAD_OPT "-mt"
-#else
-# define BOOST_LIB_THREAD_OPT
-#endif
-
-#if defined(_MSC_VER) || defined(__MWERKS__)
-
-# ifdef _DLL
-
-# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-gdp"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-gdp"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-p"
-# endif
-
-# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-gdpn"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-gdpn"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-pn"
-# endif
-
-# else
-
-# if defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-gd"
-# else
-# define BOOST_LIB_RT_OPT
-# endif
-
-# endif
-
-# else
-
-# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-sgdp"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-sgdp"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-sp"
-# endif
-
-# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-sgdpn"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-sgdpn"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-spn"
-# endif
-
-# else
-
-# if defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-sgd"
-# else
-# define BOOST_LIB_RT_OPT "-s"
-# endif
-
-# endif
-
-# endif
-
-#elif defined(__BORLANDC__)
-
-//
-// figure out whether we want the debug builds or not:
-//
-#if __BORLANDC__ > 0x561
-#pragma defineonoption BOOST_BORLAND_DEBUG -v
-#endif
-//
-// sanity check:
-//
-#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
-#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
-#endif
-
-# ifdef _RTLDLL
-
-# ifdef BOOST_BORLAND_DEBUG
-# define BOOST_LIB_RT_OPT "-d"
-# else
-# define BOOST_LIB_RT_OPT
-# endif
-
-# else
-
-# ifdef BOOST_BORLAND_DEBUG
-# define BOOST_LIB_RT_OPT "-sd"
-# else
-# define BOOST_LIB_RT_OPT "-s"
-# endif
-
-# endif
-
-#endif
-
-//
-// select linkage opt:
-//
-#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
-# define BOOST_LIB_PREFIX
-#elif defined(BOOST_DYN_LINK)
-# error "Mixing a dll boost library with a static runtime is a really bad idea..."
-#else
-# define BOOST_LIB_PREFIX "lib"
-#endif
-
-//
-// now include the lib:
-//
-#if defined(BOOST_LIB_NAME) \
- && defined(BOOST_LIB_PREFIX) \
- && defined(BOOST_LIB_TOOLSET) \
- && defined(BOOST_LIB_THREAD_OPT) \
- && defined(BOOST_LIB_RT_OPT) \
- && defined(BOOST_LIB_VERSION)
-
-#ifndef BOOST_AUTO_LINK_NOMANGLE
-# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-# ifdef BOOST_LIB_DIAGNOSTIC
-# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-# endif
-#else
-# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
-# ifdef BOOST_LIB_DIAGNOSTIC
-# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
-# endif
-#endif
-
-#else
-# error "some required macros where not defined (internal logic error)."
-#endif
-
-
-#endif // _MSC_VER || __BORLANDC__
-
-//
-// finally undef any macros we may have set:
-//
-#ifdef BOOST_LIB_PREFIX
-# undef BOOST_LIB_PREFIX
-#endif
-#if defined(BOOST_LIB_NAME)
-# undef BOOST_LIB_NAME
-#endif
-// Don't undef this one: it can be set by the user and should be the
-// same for all libraries:
-//#if defined(BOOST_LIB_TOOLSET)
-//# undef BOOST_LIB_TOOLSET
-//#endif
-#if defined(BOOST_LIB_THREAD_OPT)
-# undef BOOST_LIB_THREAD_OPT
-#endif
-#if defined(BOOST_LIB_RT_OPT)
-# undef BOOST_LIB_RT_OPT
-#endif
-#if defined(BOOST_LIB_LINK_OPT)
-# undef BOOST_LIB_LINK_OPT
-#endif
-#if defined(BOOST_LIB_DEBUG_OPT)
-# undef BOOST_LIB_DEBUG_OPT
-#endif
-#if defined(BOOST_DYN_LINK)
-# undef BOOST_DYN_LINK
-#endif
-#if defined(BOOST_AUTO_LINK_NOMANGLE)
-# undef BOOST_AUTO_LINK_NOMANGLE
-#endif
-
-
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// (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.
-
-// Borland C++ compiler setup:
-
-// Version 5.0 and below:
-# if __BORLANDC__ <= 0x0550
-// Borland C++Builder 4 and 5:
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# if __BORLANDC__ == 0x0550
-// Borland C++Builder 5, command-line compiler 5.5:
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# endif
-# endif
-
-// Version 5.51 and below:
-#if (__BORLANDC__ <= 0x551)
-# define BOOST_NO_CV_SPECIALIZATIONS
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-# define BOOST_NO_DEDUCED_TYPENAME
-// workaround for missing WCHAR_MAX/WCHAR_MIN:
-#include <climits>
-#include <cwchar>
-#ifndef WCHAR_MAX
-# define WCHAR_MAX 0xffff
-#endif
-#ifndef WCHAR_MIN
-# define WCHAR_MIN 0
-#endif
-#endif
-
-// Version 7.0 (Kylix) and below:
-#if (__BORLANDC__ <= 0x570)
-# define BOOST_NO_SFINAE
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-# define BOOST_NO_PRIVATE_IN_AGGREGATE
-# define BOOST_NO_USING_TEMPLATE
-# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-# define BOOST_NO_TEMPLATE_TEMPLATES
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- // 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_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-# define BOOST_NO_IS_ABSTRACT
-# ifdef NDEBUG
- // fix broken <cstring> so that Boost.test works:
-# include <cstring>
-# undef strcmp
-# endif
-
-//
-// new bug in 5.61:
-#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x570)
- // this seems to be needed by the command line compiler, but not the IDE:
-# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#endif
-
-# ifdef _WIN32
-# define BOOST_NO_SWPRINTF
-# elif defined(linux) || defined(__linux__) || defined(__linux)
- // we should really be able to do without this
- // but the wcs* functions aren't imported into std::
-# define BOOST_NO_STDC_NAMESPACE
- // _CPPUNWIND doesn't get automatically set for some reason:
-# pragma defineonoption BOOST_CPPUNWIND -x
-# endif
-#endif
-
-//
-// Post 0x561 we have long long and stdint.h:
-#if __BORLANDC__ >= 0x561
-# ifndef __NO_LONG_LONG
-# define BOOST_HAS_LONG_LONG
-# endif
- // On non-Win32 platforms let the platform config figure this out:
-# ifdef _WIN32
-# define BOOST_HAS_STDINT_H
-# endif
-#endif
-
-// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
-// defined, then we have 0x560 or greater with the Rogue Wave implementation
-// which presumably has the std::DBL_MAX bug.
-#if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) || defined(_USE_OLD_RW_STL)
-// <climits> is partly broken, some macros define symbols that are really in
-// namespace std, so you end up having to use illegal constructs like
-// std::DBL_MAX, as a fix we'll just include float.h and have done with:
-#include <float.h>
-#endif
-//
-// __int64:
-//
-#if (__BORLANDC__ >= 0x530) && !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>:
-//
-#ifndef __STRICT_ANSI__
-# define BOOST_HAS_DIRENT_H
-#endif
-//
-// all versions support __declspec:
-//
-#ifndef __STRICT_ANSI__
-# define BOOST_HAS_DECLSPEC
-#endif
-//
-// ABI fixing headers:
-//
-#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet
-#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
-#endif
-//
-// Disable Win32 support in ANSI mode:
-//
-#if __BORLANDC__ < 0x600
-# pragma defineonoption BOOST_DISABLE_WIN32 -A
-#elif defined(__STRICT_ANSI__)
-# define BOOST_DISABLE_WIN32
-#endif
-//
-// MSVC compatibility mode does some nasty things:
-//
-#if defined(_MSC_VER) && (_MSC_VER <= 1200)
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# define BOOST_NO_VOID_RETURNS
-#endif
-
-#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
-
-//
-// versions check:
-// we don't support Borland prior to version 5.4:
-#if __BORLANDC__ < 0x540
-# error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 1536 (Builder X preview):
-#if (__BORLANDC__ > 1536)
-# 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
-
-
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Douglas Gregor 2001.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright Aleksey Gurtovoy 2003.
-// (C) Copyright Beman Dawes 2003.
-// (C) Copyright Jens Maurer 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Comeau C++ compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-#if (__COMO_VERSION__ <= 4245)
-
-# if defined(_MSC_VER) && _MSC_VER <= 1300
-# if _MSC_VER > 100
- // only set this in non-strict mode:
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# endif
-# endif
-
-// Void returns don't work when emulating VC 6 (Peter Dimov)
-
-# if defined(_MSC_VER) && (_MSC_VER == 1200)
-# define BOOST_NO_VOID_RETURNS
-# endif
-
-#endif // version 4245
-
-//
-// enable __int64 support in VC emulation mode
-//
-# if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# define BOOST_HAS_MS_INT64
-# endif
-
-#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
-
-//
-// versions check:
-// we don't know Comeau prior to version 4245:
-#if __COMO_VERSION__ < 4245
-# error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 4245:
-#if (__COMO_VERSION__ > 4245)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2002.
-// (C) Copyright Jens Maurer 2001.
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Aleksey Gurtovoy 2002.
-// (C) Copyright Markus Schoepflin 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.
-
-//
-// Options common to all edg based compilers.
-//
-// This is included from within the individual compiler mini-configs.
-
-#ifndef __EDG_VERSION__
-# error This file requires that __EDG_VERSION__ be defined.
-#endif
-
-#if (__EDG_VERSION__ <= 238)
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_SFINAE
-#endif
-
-#if (__EDG_VERSION__ <= 240)
-# define BOOST_NO_VOID_RETURNS
-#endif
-
-#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#endif
-
-#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
-# define BOOST_NO_TEMPLATE_TEMPLATES
-#endif
-
-#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
-# define BOOST_NO_IS_ABSTRACT
-#endif
-
-#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#endif
-
-// See also kai.hpp which checks a Kai-specific symbol for EH
-# if !defined(__KCC) && !defined(__EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
-# endif
-
-# if !defined(__NO_LONG_LONG)
-# define BOOST_HAS_LONG_LONG
-# endif
-
-#ifdef c_plusplus
-// EDG has "long long" in non-strict mode
-// However, some libraries have insufficient "long long" support
-// #define BOOST_HAS_LONG_LONG
-#endif
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Dec Alpha True64 C++ compiler setup:
-
-#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER)
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// versions check:
-// Nothing to do here?
-
-
-
+++ /dev/null
-// 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
-
-
-// check for exception handling support:
-#ifndef _CPPUNWIND
-# define BOOST_NO_EXCEPTIONS
-#endif
-
-#if (__DMC__ < 0x840)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001 - 2002.
-// (C) Copyright Jens Maurer 2001 - 2002.
-// (C) Copyright Beman Dawes 2001 - 2003.
-// (C) Copyright Douglas Gregor 2002.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Synge Todo 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// GNU C++ compiler setup:
-
-#if __GNUC__ < 3
-# if __GNUC_MINOR__ == 91
- // egcs 1.1 won't parse shared_ptr.hpp without this:
-# define BOOST_NO_AUTO_PTR
-# endif
-# if __GNUC_MINOR__ < 95
- //
- // Prior to gcc 2.95 member templates only partly
- // work - define BOOST_MSVC6_MEMBER_TEMPLATES
- // instead since inline member templates mostly work.
- //
-# define BOOST_NO_MEMBER_TEMPLATES
-# if __GNUC_MINOR__ >= 9
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-# endif
-# endif
-
-# if __GNUC_MINOR__ < 96
-# define BOOST_NO_SFINAE
-# endif
-
-# if __GNUC_MINOR__ <= 97
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# endif
-
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-# define BOOST_NO_IS_ABSTRACT
-#elif __GNUC__ == 3
- //
- // gcc-3.x problems:
- //
- // Bug specific to gcc 3.1 and 3.2:
- //
-# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-# endif
-# if __GNUC_MINOR__ < 4
-# define BOOST_NO_IS_ABSTRACT
-# endif
-#endif
-
-#ifndef __EXCEPTIONS
-# define BOOST_NO_EXCEPTIONS
-#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(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
-#endif
-
-//
-// gcc has "long long"
-//
-#define BOOST_HAS_LONG_LONG
-
-//
-// gcc implements the named return value optimization since version 3.1
-//
-#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
-#define BOOST_HAS_NRVO
-#endif
-
-#define BOOST_COMPILER "GNU C++ version " __VERSION__
-
-//
-// versions check:
-// we don't know gcc prior to version 2.90:
-#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
-# error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 4.0 (Pre-release):
-#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0))
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# else
-// we don't emit warnings here anymore since there are no defect macros defined for
-// gcc post 3.4, so any failures are gcc regressions...
-//# warning "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// 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.
-
-// Greenhills C++ compiler setup:
-
-#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// versions check:
-// we don't support Greenhills prior to version 0:
-#if __ghs < 0
-# error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0:
-#if (__ghs > 0)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001 - 2003.
-// (C) Copyright Aleksey Gurtovoy 2002.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Toon Knapen 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// HP aCC C++ compiler setup:
-
-#if (__HP_aCC <= 33100)
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# if !defined(_NAMESPACE_STD)
-# define BOOST_NO_STD_LOCALE
-# define BOOST_NO_STRINGSTREAM
-# endif
-#endif
-
-#if (__HP_aCC <= 33300)
-// member templates are sufficiently broken that we disable them for now
-# define BOOST_NO_MEMBER_TEMPLATES
-# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#endif
-
-#if (__HP_aCC <= 33900) || !defined(BOOST_STRICT_CONFIG)
-# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-# define BOOST_NO_TEMPLATE_TEMPLATES
-# define BOOST_NO_SWPRINTF
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_IS_ABSTRACT
-// std lib config should set this one already:
-//# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-// optional features rather than defects:
-#if (__HP_aCC >= 33900)
-# define BOOST_HAS_LONG_LONG
-# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#endif
-
-#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
-# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
-
-//
-// versions check:
-// we don't support HP aCC prior to version 0:
-#if __HP_aCC < 33000
-# error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0:
-#if (__HP_aCC > 53800)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright Jens Maurer 2001.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
-// (C) Copyright Guillaume Melquiond 2002 - 2003.
-// (C) Copyright Beman Dawes 2003.
-// (C) Copyright Martin Wille 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Intel compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-#if defined(__INTEL_COMPILER)
-# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
-#elif defined(__ICL)
-# define BOOST_INTEL_CXX_VERSION __ICL
-#elif defined(__ICC)
-# define BOOST_INTEL_CXX_VERSION __ICC
-#elif defined(__ECC)
-# define BOOST_INTEL_CXX_VERSION __ECC
-#endif
-
-#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
-#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
-
-#if defined(_WIN32) || defined(_WIN64)
-# define BOOST_INTEL_WIN BOOST_INTEL
-#else
-# define BOOST_INTEL_LINUX BOOST_INTEL
-#endif
-
-#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-# define BOOST_NO_TEMPLATE_TEMPLATES
-#endif
-
-#if (BOOST_INTEL_CXX_VERSION <= 600)
-
-# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
-
-// Boost libraries assume strong standard conformance unless otherwise
-// indicated by a config macro. As configured by Intel, the EDG front-end
-// requires certain compiler options be set to achieve that strong conformance.
-// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
-// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
-// details as they apply to particular versions of the compiler. When the
-// compiler does not predefine a macro indicating if an option has been set,
-// this config file simply assumes the option has been set.
-// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
-// the compiler option is not enabled.
-
-# define BOOST_NO_SWPRINTF
-# endif
-
-// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
-
-# if defined(_MSC_VER) && (_MSC_VER <= 1200)
-# define BOOST_NO_VOID_RETURNS
-# define BOOST_NO_INTEGRAL_INT64_T
-# endif
-
-#endif
-
-#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
-# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-#endif
-
-// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
-#if BOOST_INTEL_CXX_VERSION < 600
-# define BOOST_NO_INTRINSIC_WCHAR_T
-#else
-// We should test the macro _WCHAR_T_DEFINED to check if the compiler
-// supports wchar_t natively. *BUT* there is a problem here: the standard
-// headers define this macro if they typedef wchar_t. Anyway, we're lucky
-// because they define it without a value, while Intel C++ defines it
-// to 1. So we can check its value to see if the macro was defined natively
-// or not.
-// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
-// is used instead.
-# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
-# define BOOST_NO_INTRINSIC_WCHAR_T
-# endif
-#endif
-
-#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-//
-// Figure out when Intel is emulating this gcc bug:
-//
-# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL <= 900)
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-# endif
-#endif
-
-//
-// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
-// set correctly, if we don't do this now, we will get errors later
-// in type_traits code among other things, getting this correct
-// for the Intel compiler is actually remarkably fragile and tricky:
-//
-#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
-#include <cwchar>
-template< typename T > struct assert_no_intrinsic_wchar_t;
-template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
-// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
-// where it is defined above:
-typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
-#else
-template< typename T > struct assert_intrinsic_wchar_t;
-template<> struct assert_intrinsic_wchar_t<wchar_t> {};
-// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
-template<> struct assert_intrinsic_wchar_t<unsigned short> {};
-#endif
-
-#if _MSC_VER+0 >= 1000
-# if _MSC_VER >= 1200
-# define BOOST_HAS_MS_INT64
-# endif
-# define BOOST_NO_SWPRINTF
-#elif defined(_WIN32)
-# define BOOST_DISABLE_WIN32
-#endif
-
-// I checked version 6.0 build 020312Z, it implements the NRVO.
-// Correct this as you find out which version of the compiler
-// implemented the NRVO first. (Daniel Frey)
-#if (BOOST_INTEL_CXX_VERSION >= 600)
-# define BOOST_HAS_NRVO
-#endif
-
-//
-// versions check:
-// we don't support Intel prior to version 5.0:
-#if BOOST_INTEL_CXX_VERSION < 500
-# error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version:
-#if (BOOST_INTEL_CXX_VERSION > 900)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# elif defined(_MSC_VER)
-# pragma message("Unknown compiler version - please run the configure tests and report the results")
-# endif
-#endif
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright David Abrahams 2002.
-// (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.
-
-// Kai C++ compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
- // at least on Sun, the contents of <cwchar> is not in namespace std
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-
-// see also common_edg.hpp which needs a special check for __KCC
-# if !defined(_EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
-# endif
-
-#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
-
-//
-// last known and checked version is 4001:
-#if (__KCC_VERSION > 4001)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Darin Adler 2001.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright David Abrahams 2001 - 2002.
-// (C) Copyright Beman Dawes 2001 - 2003.
-// (C) Copyright Stefan Slapeta 2004.
-// 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.
-
-// Metrowerks C++ compiler setup:
-
-// locale support is disabled when linking with the dynamic runtime
-# ifdef _MSL_NO_LOCALE
-# define BOOST_NO_STD_LOCALE
-# endif
-
-# if __MWERKS__ <= 0x2301 // 5.3
-# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-# define BOOST_NO_POINTER_TO_MEMBER_CONST
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-# endif
-
-# if __MWERKS__ <= 0x2401 // 6.2
-//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-# endif
-
-# if(__MWERKS__ <= 0x2407) // 7.x
-# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-# endif
-
-# if(__MWERKS__ <= 0x3003) // 8.x
-# define BOOST_NO_SFINAE
-# endif
-
-// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
-// tested version *only*:
-# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_IS_ABSTRACT
-# endif
-
-#if !__option(wchar_type)
-# define BOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-#if !__option(exceptions)
-# define BOOST_NO_EXCEPTIONS
-#endif
-
-#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
-# if __MWERKS__ == 0x3000
-# define BOOST_COMPILER_VERSION 8.0
-# elif __MWERKS__ == 0x3001
-# define BOOST_COMPILER_VERSION 8.1
-# elif __MWERKS__ == 0x3002
-# define BOOST_COMPILER_VERSION 8.2
-# elif __MWERKS__ == 0x3003
-# define BOOST_COMPILER_VERSION 8.3
-# elif __MWERKS__ == 0x3200
-# define BOOST_COMPILER_VERSION 9.0
-# elif __MWERKS__ == 0x3201
-# define BOOST_COMPILER_VERSION 9.1
-# elif __MWERKS__ == 0x3202
-# define BOOST_COMPILER_VERSION 9.2
-# elif __MWERKS__ == 0x3204
-# define BOOST_COMPILER_VERSION 9.3
-# elif __MWERKS__ == 0x3205
-# define BOOST_COMPILER_VERSION 9.4
-# elif __MWERKS__ == 0x3206
-# define BOOST_COMPILER_VERSION 9.5
-# else
-# define BOOST_COMPILER_VERSION __MWERKS__
-# endif
-#else
-# define BOOST_COMPILER_VERSION __MWERKS__
-#endif
-
-#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
-
-//
-// versions check:
-// we don't support Metrowerks prior to version 5.3:
-#if __MWERKS__ < 0x2301
-# error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version:
-#if (__MWERKS__ > 0x3205)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2002.
-// (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.
-
-// MPW C++ compilers setup:
-
-# if defined(__SC__)
-# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
-# elif defined(__MRC__)
-# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
-# else
-# error "Using MPW compiler configuration by mistake. Please update."
-# endif
-
-//
-// MPW 8.90:
-//
-#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
-# define BOOST_NO_CV_SPECIALIZATIONS
-# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_INTRINSIC_WCHAR_T
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define BOOST_NO_USING_TEMPLATE
-
-# define BOOST_NO_CWCHAR
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-
-# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
-#endif
-
-//
-// versions check:
-// we don't support MPW prior to version 8.9:
-#if MPW_CPLUS < 0x890
-# error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x890:
-#if (MPW_CPLUS > 0x890)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 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.
-
-// SGI C++ compiler setup:
-
-#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// Threading support:
-// Turn this on unconditionally here, it will get turned off again later
-// if no threading API is detected.
-//
-#define BOOST_HAS_THREADS
-//
-// version check:
-// probably nothing to do here?
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Jens Maurer 2001 - 2003.
-// (C) Copyright Peter Dimov 2002.
-// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
-// (C) Copyright David Abrahams 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.
-
-// Sun C++ compiler setup:
-
-# if __SUNPRO_CC <= 0x500
-# define BOOST_NO_MEMBER_TEMPLATES
-# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-# endif
-
-# if (__SUNPRO_CC <= 0x520)
- //
- // Sunpro 5.2 and earler:
- //
- // although sunpro 5.2 supports the syntax for
- // inline initialization it often gets the value
- // wrong, especially where the value is computed
- // from other constants (J Maddock 6th May 2001)
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
- // Although sunpro 5.2 supports the syntax for
- // partial specialization, it often seems to
- // bind to the wrong specialization. Better
- // to disable it until suppport becomes more stable
- // (J Maddock 6th May 2001).
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# endif
-
-# if (__SUNPRO_CC <= 0x530)
- // Requesting debug info (-g) with Boost.Python results
- // in an internal compiler error for "static const"
- // initialized in-class.
- // >> Assertion: (../links/dbg_cstabs.cc, line 611)
- // while processing ../test.cpp at line 0.
- // (Jens Maurer according to Gottfried Ganßauge 04 Mar 2002)
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
- // SunPro 5.3 has better support for partial specialization,
- // but breaks when compiling std::less<shared_ptr<T> >
- // (Jens Maurer 4 Nov 2001).
-
- // std::less specialization fixed as reported by George
- // Heintzelman; partial specialization re-enabled
- // (Peter Dimov 17 Jan 2002)
-
-//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // integral constant expressions with 64 bit numbers fail
-# define BOOST_NO_INTEGRAL_INT64_T
-# endif
-
-# if (__SUNPRO_CC < 0x570)
-# define BOOST_NO_TEMPLATE_TEMPLATES
- // see http://lists.boost.org/MailArchives/boost/msg47184.php
- // and http://lists.boost.org/MailArchives/boost/msg47220.php
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_SFINAE
-# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-# define BOOST_NO_IS_ABSTRACT
-# endif
-
-#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
-
-//
-// versions check:
-// we don't support sunpro prior to version 4:
-#if __SUNPRO_CC < 0x400
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x570:
-#if (__SUNPRO_CC > 0x570)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Toon Knapen 2001 - 2003.
-// (C) Copyright Lie-Quan Lee 2001.
-// (C) Copyright Markus Schöpflin 2002 - 2003.
-// (C) Copyright Beman Dawes 2002 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Visual Age (IBM) C++ compiler setup:
-
-#if __IBMCPP__ <= 501
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#endif
-
-#if (__IBMCPP__ <= 502)
-// Actually the compiler supports inclass member initialization but it
-// requires a definition for the class member and it doesn't recognize
-// it as an integral constant expression when used as a template argument.
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
-# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES 1
-#endif
-
-//
-// On AIX thread support seems to be indicated by _THREAD_SAFE:
-//
-#ifdef _THREAD_SAFE
-# define BOOST_HAS_THREADS
-#endif
-
-#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
-
-//
-// versions check:
-// we don't support Visual age prior to version 5:
-#if __IBMCPP__ < 500
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 600:
-#if (__IBMCPP__ > 600)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001 - 2002.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright Aleksey Gurtovoy 2002.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Beman Dawes 2002 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Microsoft Visual C++ compiler setup:
-
-#define BOOST_MSVC _MSC_VER
-
-// turn off the warnings before we #include anything
-#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
-
-#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
-# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_VOID_RETURNS
-# define BOOST_NO_EXCEPTION_STD_NAMESPACE
- // disable min/max macro defines on vc6:
- //
-#endif
-
-#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
-
-# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# endif
-
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_PRIVATE_IN_AGGREGATE
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_DEDUCED_TYPENAME
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-
-// VC++ 6/7 has member templates but they have numerous problems including
-// cases of silent failure, so for safety we define:
-# define BOOST_NO_MEMBER_TEMPLATES
-// For VC++ experts wishing to attempt workarounds, we define:
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-# define BOOST_NO_USING_TEMPLATE
-# define BOOST_NO_SWPRINTF
-# define BOOST_NO_TEMPLATE_TEMPLATES
-# define BOOST_NO_SFINAE
-# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-# define BOOST_NO_IS_ABSTRACT
-// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
-# if (_MSC_VER > 1200)
-# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-# endif
-
-#endif
-
-#if _MSC_VER < 1310 // 1310 == VC++ 7.1
-# define BOOST_NO_SWPRINTF
-#endif
-
-#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#endif
-
-#ifndef _NATIVE_WCHAR_T_DEFINED
-# define BOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-#ifdef _WIN32_WCE
-# define BOOST_NO_THREADEX
-# define BOOST_NO_GETSYSTEMTIMEASFILETIME
-#endif
-
-//
-// check for exception handling support:
-#ifndef _CPPUNWIND
-# define BOOST_NO_EXCEPTIONS
-#endif
-
-//
-// __int64 support:
-//
-#if (_MSC_VER >= 1200)
-# define BOOST_HAS_MS_INT64
-#endif
-#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
-# define BOOST_HAS_LONG_LONG
-#endif
-//
-// disable Win32 API's if compiler extentions are
-// turned off:
-//
-#ifndef _MSC_EXTENSIONS
-# define BOOST_DISABLE_WIN32
-#endif
-
-//
-// all versions support __declspec:
-//
-#define BOOST_HAS_DECLSPEC
-//
-// prefix and suffix headers:
-//
-#ifndef BOOST_ABI_PREFIX
-# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
-#endif
-#ifndef BOOST_ABI_SUFFIX
-# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
-#endif
-
-// TODO:
-// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
-// artificial versions assigned to them only refer to the versions of some IDE
-// these compilers have been shipped with, and even that is not all of it. Some
-// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
-// IOW, you can't use these 'versions' in any sensible way. Sorry.
-# if defined(UNDER_CE)
-# if _MSC_VER < 1200
- // Note: these are so far off, they are not really supported
-# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
-# define BOOST_COMPILER_VERSION evc4.0
-# error unknown CE compiler
-# else
-# error unknown CE compiler
-# endif
-# else
-# if _MSC_VER < 1200
- // Note: these are so far off, they are not really supported
-# define BOOST_COMPILER_VERSION 5.0
-# elif _MSC_VER < 1300
-# define BOOST_COMPILER_VERSION 6.0
-# elif _MSC_VER == 1300
-# define BOOST_COMPILER_VERSION 7.0
-# elif _MSC_VER == 1310
-# define BOOST_COMPILER_VERSION 7.1
-# elif _MSC_VER == 1400
-# define BOOST_COMPILER_VERSION 8.0
-# else
-# define BOOST_COMPILER_VERSION _MSC_VER
-# endif
-# endif
-
-#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
-
-//
-// versions check:
-// we don't support Visual C++ prior to version 6:
-#if _MSC_VER < 1200
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 1400 (VC8):
-#if (_MSC_VER > 1400)
-# 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
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 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.
-
-// IBM/Aix specific config options:
-
-#define BOOST_PLATFORM "IBM Aix"
-
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_NL_TYPES_H
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_CLOCK_GETTIME
-
-// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
-// This platform has header named <inttypes.h> which includes all
-// the things needed.
-#define BOOST_HAS_STDINT_H
-
-// Threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_DELAY_NP
-#define BOOST_HAS_SCHED_YIELD
-//#define BOOST_HAS_PTHREAD_YIELD
-
-// boilerplate code:
-#include <boost/config/posix_features.hpp>
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 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.
-
-#define BOOST_PLATFORM "AmigaOS"
-
-#define BOOST_DISABLE_THREADS
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_STD_WSTRING
-#define BOOST_NO_INTRINSIC_WCHAR_T
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// 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.
-
-// BeOS specific config options:
-
-#define BOOST_PLATFORM "BeOS"
-
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_CWCTYPE
-#define BOOST_HAS_UNISTD_H
-
-#define BOOST_HAS_BETHREADS
-
-#ifndef BOOST_DISABLE_THREADS
-# define BOOST_HAS_THREADS
-#endif
-
-// boilerplate code:
-#include <boost/config/posix_features.hpp>
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001.
-// (C) Copyright Douglas Gregor 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.
-
-// generic BSD config options:
-
-#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
-#error "This platform is not BSD"
-#endif
-
-#ifdef __FreeBSD__
-#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
-#elif defined(__NetBSD__)
-#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
-#elif defined(__OpenBSD__)
-#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
-#elif defined(__DragonFly__)
-#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
-#endif
-
-//
-// is this the correct version check?
-// FreeBSD has <nl_types.h> but does not
-// advertise the fact in <unistd.h>:
-//
-#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
-# define BOOST_HAS_NL_TYPES_H
-#endif
-
-//
-// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
-// and not in <unistd.h>
-//
-#if defined(__FreeBSD__) && (__FreeBSD__ <= 3)
-# define BOOST_HAS_PTHREADS
-#endif
-
-//
-// No wide character support in the BSD header files:
-//
-#if !(defined(__FreeBSD__) && (__FreeBSD__ >= 5))
-# define BOOST_NO_CWCHAR
-#endif
-//
-// The BSD <ctype.h> has macros only, no functions:
-//
-#if !defined(__OpenBSD__)
-# define BOOST_NO_CTYPE_FUNCTIONS
-#endif
-
-//
-// thread API's not auto detected:
-//
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#define BOOST_HAS_SIGACTION
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// cygwin specific config options:
-
-#define BOOST_PLATFORM "Cygwin"
-#define BOOST_NO_CWCTYPE
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_SWPRINTF
-#define BOOST_HAS_DIRENT_H
-
-//
-// Threading API:
-// See if we have POSIX threads, if we do use them, otherwise
-// revert to native Win threads.
-#define BOOST_HAS_UNISTD_H
-#include <unistd.h>
-#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
-# define BOOST_HAS_PTHREADS
-# define BOOST_HAS_SCHED_YIELD
-# define BOOST_HAS_GETTIMEOFDAY
-# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-# define BOOST_HAS_SIGACTION
-#else
-# if !defined(BOOST_HAS_WINTHREADS)
-# define BOOST_HAS_WINTHREADS
-# endif
-# define BOOST_HAS_FTIME
-#endif
-
-//
-// find out if we have a stdint.h, there should be a better way to do this:
-//
-#include <sys/types.h>
-#ifdef _STDINT_H
-#define BOOST_HAS_STDINT_H
-#endif
-
-// boilerplate code:
-#include <boost/config/posix_features.hpp>
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001 - 2003.
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Toon Knapen 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// hpux specific config options:
-
-#define BOOST_PLATFORM "HP-UX"
-
-// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
-// However, it has the following problem:
-// Use of UINT32_C(0) results in "0u l" for the preprocessed source
-// (verifyable with gcc 2.95.3, assumed for HP aCC)
-// #define BOOST_HAS_STDINT_H
-
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CWCTYPE
-
-#if defined(__GNUC__)
-# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
- // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
-# define BOOST_DISABLE_THREADS
-# elif !defined(BOOST_DISABLE_THREADS)
- // threads supported from gcc-3.3 onwards:
-# define BOOST_HAS_THREADS
-# define BOOST_HAS_PTHREADS
-# endif
-#endif
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-// the following are always available:
-#ifndef BOOST_HAS_GETTIMEOFDAY
-# define BOOST_HAS_GETTIMEOFDAY
-#endif
-#ifndef BOOST_HAS_SCHED_YIELD
-# define BOOST_HAS_SCHED_YIELD
-#endif
-#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#endif
-#ifndef BOOST_HAS_NL_TYPES_H
-# define BOOST_HAS_NL_TYPES_H
-#endif
-#ifndef BOOST_HAS_NANOSLEEP
-# define BOOST_HAS_NANOSLEEP
-#endif
-#ifndef BOOST_HAS_GETTIMEOFDAY
-# define BOOST_HAS_GETTIMEOFDAY
-#endif
-#ifndef BOOST_HAS_DIRENT_H
-# define BOOST_HAS_DIRENT_H
-#endif
-#ifndef BOOST_HAS_CLOCK_GETTIME
-# define BOOST_HAS_CLOCK_GETTIME
-#endif
-#ifndef BOOST_HAS_SIGACTION
-# define BOOST_HAS_SIGACTION
-#endif
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-// See http://www.boost.org for most recent version.
-
-// SGI Irix specific config options:
-
-#define BOOST_PLATFORM "SGI Irix"
-
-#define BOOST_NO_SWPRINTF
-//
-// these are not auto detected by POSIX feature tests:
-//
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-
-#ifdef __GNUC__
- // GNU C on IRIX does not support threads (checked up to gcc 3.3)
-# define BOOST_DISABLE_THREADS
-#endif
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// linux specific config options:
-
-#define BOOST_PLATFORM "linux"
-
-// make sure we have __GLIBC_PREREQ if available at all
-#include <cstdlib>
-
-//
-// <stdint.h> added to glibc 2.1.1
-// We can only test for 2.1 though:
-//
-#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
- // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
- // int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
- // only when using GCC.
-# if defined __GNUC__
-# define BOOST_HAS_STDINT_H
-# endif
-#endif
-
-#if defined(__LIBCOMO__)
- //
- // como on linux doesn't have std:: c functions:
- // NOTE: versions of libcomo prior to beta28 have octal version numbering,
- // e.g. version 25 is 21 (dec)
- //
-# if __LIBCOMO_VERSION__ <= 20
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-
-# if __LIBCOMO_VERSION__ <= 21
-# define BOOST_NO_SWPRINTF
-# endif
-
-#endif
-
-//
-// If glibc is past version 2 then we definitely have
-// gettimeofday, earlier versions may or may not have it:
-//
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
-# define BOOST_HAS_GETTIMEOFDAY
-#endif
-
-#ifdef __USE_POSIX199309
-# define BOOST_HAS_NANOSLEEP
-#endif
-
-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
-// __GLIBC_PREREQ is available since 2.1.2
-
- // swprintf is available since glibc 2.2.0
-# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
-# define BOOST_NO_SWPRINTF
-# endif
-#else
-# define BOOST_NO_SWPRINTF
-#endif
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-#ifndef __GNUC__
-//
-// if the compiler is not gcc we still need to be able to parse
-// the GNU system headers, some of which (mainly <stdint.h>)
-// use GNU specific extensions:
-//
-# ifndef __extension__
-# define __extension__
-# endif
-# ifndef __const__
-# define __const__ const
-# endif
-# ifndef __volatile__
-# define __volatile__ volatile
-# endif
-# ifndef __signed__
-# define __signed__ signed
-# endif
-# ifndef __typeof__
-# define __typeof__ typeof
-# endif
-# ifndef __inline__
-# define __inline__ inline
-# endif
-#endif
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001 - 2002.
-// (C) Copyright Bill Kempf 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.
-
-// Mac OS specific config options:
-
-#define BOOST_PLATFORM "Mac OS"
-
-#if __MACH__ && !defined(_MSL_USING_MSL_C)
-
-// Using the Mac OS X system BSD-style C library.
-
-# ifndef BOOST_HAS_UNISTD_H
-# define BOOST_HAS_UNISTD_H
-# endif
-//
-// Begin by including our boilerplate code for POSIX
-// feature detection, this is safe even when using
-// the MSL as Metrowerks supply their own <unistd.h>
-// to replace the platform-native BSD one. G++ users
-// should also always be able to do this on MaxOS X.
-//
-# include <boost/config/posix_features.hpp>
-# ifndef BOOST_HAS_STDINT_H
-# define BOOST_HAS_STDINT_H
-# endif
-
-//
-// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
-// of these only pthreads are advertised in <unistd.h>, so set the
-// other options explicitly:
-//
-# define BOOST_HAS_SCHED_YIELD
-# define BOOST_HAS_GETTIMEOFDAY
-# define BOOST_HAS_SIGACTION
-
-# if (__GNUC__ < 3) && !defined( __APPLE_CC__)
-
-// GCC strange "ignore std" mode works better if you pretend everything
-// is in the std namespace, for the most part.
-
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-
-#else
-
-// Using the MSL C library.
-
-// We will eventually support threads in non-Carbon builds, but we do
-// not support this yet.
-# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
-
-# if !defined(BOOST_HAS_PTHREADS)
-# define BOOST_HAS_MPTASKS
-# elif ( __dest_os == __mac_os_x )
-// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
-// gettimeofday and no posix.
-# define BOOST_HAS_GETTIMEOFDAY
-# endif
-
-// The MP task implementation of Boost Threads aims to replace MP-unsafe
-// parts of the MSL, so we turn on threads unconditionally.
-# define BOOST_HAS_THREADS
-
-// The remote call manager depends on this.
-# define BOOST_BIND_ENABLE_PASCAL
-
-# endif
-
-#endif
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// sun specific config options:
-
-#define BOOST_PLATFORM "Sun Solaris"
-
-#define BOOST_HAS_GETTIMEOFDAY
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Bill Kempf 2001.
-// (C) Copyright Aleksey Gurtovoy 2003.
-// (C) Copyright Rene Rivera 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.
-
-// Win32 specific config options:
-
-#define BOOST_PLATFORM "Win32"
-
-// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
-#if defined(__MINGW32__)
-# include <_mingw.h>
-#endif
-
-#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
-# define BOOST_NO_SWPRINTF
-#endif
-
-#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC)
-# define BOOST_HAS_DECLSPEC
-#endif
-
-#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
-# define BOOST_HAS_STDINT_H
-# define __STDC_LIMIT_MACROS
-# define BOOST_HAS_DIRENT_H
-# define BOOST_HAS_UNISTD_H
-#endif
-
-//
-// Win32 will normally be using native Win32 threads,
-// but there is a pthread library avaliable as an option,
-// we used to disable this when BOOST_DISABLE_WIN32 was
-// defined but no longer - this should allow some
-// files to be compiled in strict mode - while maintaining
-// a consistent setting of BOOST_HAS_THREADS across
-// all translation units (needed for shared_ptr etc).
-//
-
-#ifdef _WIN32_WCE
-# define BOOST_NO_ANSI_APIS
-#endif
-
-#ifndef BOOST_HAS_PTHREADS
-# define BOOST_HAS_WINTHREADS
-#endif
-
-#ifndef BOOST_DISABLE_WIN32
-// WEK: Added
-#define BOOST_HAS_FTIME
-#define BOOST_WINDOWS 1
-
-#endif
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-// See http://www.boost.org for most recent version.
-
-// All POSIX feature tests go in this file,
-// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
-// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
-// may be present but none-functional unless _POSIX_C_SOURCE and
-// _XOPEN_SOURCE have been defined to the right value (it's up
-// to the user to do this *before* including any header, although
-// in most cases the compiler will do this for you).
-
-# if defined(BOOST_HAS_UNISTD_H)
-# include <unistd.h>
-
- // XOpen has <nl_types.h>, but is this the correct version check?
-# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
-# define BOOST_HAS_NL_TYPES_H
-# endif
-
- // POSIX version 6 requires <stdint.h>
-# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
-# define BOOST_HAS_STDINT_H
-# endif
-
- // POSIX version 2 requires <dirent.h>
-# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
-# define BOOST_HAS_DIRENT_H
-# endif
-
- // POSIX version 3 requires <signal.h> to have sigaction:
-# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
-# define BOOST_HAS_SIGACTION
-# endif
- // POSIX defines _POSIX_THREADS > 0 for pthread support,
- // however some platforms define _POSIX_THREADS without
- // a value, hence the (_POSIX_THREADS+0 >= 0) check.
- // Strictly speaking this may catch platforms with a
- // non-functioning stub <pthreads.h>, but such occurrences should
- // occur very rarely if at all.
-# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
-# define BOOST_HAS_PTHREADS
-# endif
-
- // BOOST_HAS_NANOSLEEP:
- // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
-# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
- || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-# define BOOST_HAS_NANOSLEEP
-# endif
-
- // BOOST_HAS_CLOCK_GETTIME:
- // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
- // but at least one platform - linux - defines that flag without
- // defining clock_gettime):
-# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
-# define BOOST_HAS_CLOCK_GETTIME
-# endif
-
- // BOOST_HAS_SCHED_YIELD:
- // This is predicated on _POSIX_PRIORITY_SCHEDULING or
- // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
-# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
- || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
- || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-# define BOOST_HAS_SCHED_YIELD
-# endif
-
- // BOOST_HAS_GETTIMEOFDAY:
- // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
- // These are predicated on _XOPEN_VERSION, and appears to be first released
- // in issue 4, version 2 (_XOPEN_VERSION > 500).
-# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
-# define BOOST_HAS_GETTIMEOFDAY
-# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
-# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-# endif
-# endif
-
-# endif
-
-
-
+++ /dev/null
-// (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
+++ /dev/null
-// Boost compiler configuration selection header file
-
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Martin Wille 2003.
-// (C) Copyright Guillaume Melquiond 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// locate which compiler we are using and define
-// BOOST_COMPILER_CONFIG as needed:
-
-# if defined __COMO__
-// Comeau C++
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
-
-#elif defined __DMC__
-// Digital Mars C++
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-// Intel
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
-
-# elif defined __GNUC__
-// GNU C++:
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
-
-#elif defined __KCC
-// Kai C++
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
-
-#elif defined __sgi
-// SGI MIPSpro C++
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
-
-#elif defined __DECCXX
-// Compaq Tru64 Unix cxx
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
-
-#elif defined __ghs
-// Greenhills C++
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
-
-#elif defined __BORLANDC__
-// Borland
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
-
-#elif defined __MWERKS__
-// Metrowerks CodeWarrior
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
-
-#elif defined __SUNPRO_CC
-// Sun Workshop Compiler C++
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
-
-#elif defined __HP_aCC
-// HP aCC
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
-
-#elif defined(__MRC__) || defined(__SC__)
-// MPW MrCpp or SCpp
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
-
-#elif defined(__IBMCPP__)
-// IBM Visual Age
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
-
-#elif defined _MSC_VER
-// Microsoft Visual C++
-//
-// Must remain the last #elif since some other vendors (Metrowerks, for
-// example) also #define _MSC_VER
-# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
-
-#elif defined (BOOST_ASSERT_CONFIG)
-// this must come last - generate an error if we don't
-// recognise the compiler:
-# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
-
-#endif
+++ /dev/null
-// Boost compiler configuration selection header file
-
-// (C) Copyright John Maddock 2001 - 2002.
-// (C) Copyright Jens Maurer 2001.
-// 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.
-
-// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
-// Note that we define the headers to include using "header_name" not
-// <header_name> in order to prevent macro expansion within the header
-// name (for example "linux" is a macro on linux systems).
-
-#if defined(linux) || defined(__linux) || defined(__linux__)
-// linux:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
-
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-// BSD:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
-
-#elif defined(sun) || defined(__sun)
-// solaris:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
-
-#elif defined(__sgi)
-// SGI Irix:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
-
-#elif defined(__hpux)
-// hp unix:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
-
-#elif defined(__CYGWIN__)
-// cygwin is not win32:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-// win32:
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
-
-#elif defined(__BEOS__)
-// BeOS
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
-
-#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
-// MacOS
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
-
-#elif defined(__IBMCPP__) || defined(_AIX)
-// IBM
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
-
-#elif defined(__amigaos__)
-// AmigaOS
-# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
-
-#else
-
-# if defined(unix) \
- || defined(__unix) \
- || defined(_XOPEN_SOURCE) \
- || defined(_POSIX_SOURCE)
-
- // generic unix platform:
-
-# ifndef BOOST_HAS_UNISTD_H
-# define BOOST_HAS_UNISTD_H
-# endif
-
-# include <boost/config/posix_features.hpp>
-
-# endif
-
-# if defined (BOOST_ASSERT_CONFIG)
- // this must come last - generate an error if we don't
- // recognise the platform:
-# error "Unknown platform - please configure and report the results to boost.org"
-# endif
-
-#endif
-
-
-
+++ /dev/null
-// Boost compiler configuration selection header file
-
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001 - 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.
-
-// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
-
-// we need to include a std lib header here in order to detect which
-// library is in use, use <utility> as it's about the smallest
-// of the std lib headers - do not rely on this header being included -
-// users can short-circuit this header if they know whose std lib
-// they are using.
-
-#include <utility>
-
-#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-// STLPort library; this _must_ come first, otherwise since
-// STLport typically sits on top of some other library, we
-// can end up detecting that first rather than STLport:
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
-
-#elif defined(__LIBCOMO__)
-// Comeau STL:
-#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
-
-#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-// Rogue Wave library:
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
-
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-// GNU libstdc++ 3
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
-
-#elif defined(__STL_CONFIG_H)
-// generic SGI STL
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
-
-#elif defined(__MSL_CPP__)
-// MSL standard lib:
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
-
-#elif defined(__IBMCPP__)
-// take the default VACPP std lib
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
-
-#elif defined(MSIPL_COMPILE_H)
-// Modena C++ standard library
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
-
-#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
-// Dinkumware Library (this has to appear after any possible replacement libraries):
-# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
-
-#elif defined (BOOST_ASSERT_CONFIG)
-// this must come last - generate an error if we don't
-// recognise the library:
-# error "Unknown standard library - please configure and report the results to boost.org"
-
-#endif
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Guillaume Melquiond 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Dinkumware standard library config:
-
-#if !defined(_YVALS) && !defined(_CPPLIB_VER)
-#include <utility>
-#if !defined(_YVALS) && !defined(_CPPLIB_VER)
-#error This is not the Dinkumware lib!
-#endif
-#endif
-
-
-#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
- // full dinkumware 3.06 and above
- // fully conforming provided the compiler supports it:
-# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
-# define BOOST_NO_STD_ALLOCATOR
-# endif
-# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
- // if this lib version is set up for vc6 then there is no std::use_facet:
-# define BOOST_NO_STD_USE_FACET
-# define BOOST_HAS_TWO_ARG_USE_FACET
- // C lib functions aren't in namespace std either:
-# define BOOST_NO_STDC_NAMESPACE
- // and nor is <exception>
-# define BOOST_NO_EXCEPTION_STD_NAMESPACE
-# endif
-// There's no numeric_limits<long long> support unless _LONGLONG is defined:
-# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-# endif
-// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
-// and no <slist> at all
-#else
-# define BOOST_MSVC_STD_ITERATOR 1
-# define BOOST_NO_STD_ITERATOR
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# define BOOST_NO_STD_ALLOCATOR
-# define BOOST_NO_STDC_NAMESPACE
-# define BOOST_NO_STD_USE_FACET
-# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-# define BOOST_HAS_MACRO_USE_FACET
-# ifndef _CPPLIB_VER
- // Updated Dinkum library defines this, and provides
- // its own min and max definitions.
-# define BOOST_NO_STD_MIN_MAX
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-# endif
-#endif
-
-//
-// std extension namespace is stdext for vc7.1 and later,
-// the same applies to other compilers that sit on top
-// of vc7.1 (Intel and Comeau):
-//
-#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
-# define BOOST_STD_EXTENSION_NAMESPACE stdext
-#endif
-
-
-#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
- // if we're using a dinkum lib that's
- // been configured for VC6/7 then there is
- // no iterator traits (true even for icl)
-# define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
-// Intel C++ chokes over any non-trivial use of <locale>
-// this may be an overly restrictive define, but regex fails without it:
-# define BOOST_NO_STD_LOCALE
-#endif
-
-#ifdef _CPPLIB_VER
-# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
-#else
-# define BOOST_DINKUMWARE_STDLIB 1
-#endif
-
-#ifdef _CPPLIB_VER
-# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
-#else
-# define BOOST_STDLIB "Dinkumware standard library version 1.x"
-#endif
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2002 - 2003.
-// (C) Copyright Jens Maurer 2002 - 2003.
-// (C) Copyright Beman Dawes 2002 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Comeau STL:
-
-#if !defined(__LIBCOMO__)
-# include <utility>
-# if !defined(__LIBCOMO__)
-# error "This is not the Comeau STL!"
-# endif
-#endif
-
-//
-// std::streambuf<wchar_t> is non-standard
-// NOTE: versions of libcomo prior to beta28 have octal version numbering,
-// e.g. version 25 is 21 (dec)
-#if __LIBCOMO_VERSION__ <= 22
-# define BOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
-#define BOOST_NO_SWPRINTF
-#endif
-
-#if __LIBCOMO_VERSION__ >= 31
-# define BOOST_HAS_HASH
-# define BOOST_HAS_SLIST
-#endif
-
-//
-// Intrinsic type_traits support.
-// The SGI STL has it's own __type_traits class, which
-// has intrinsic compiler support with SGI's compilers.
-// Whatever map SGI style type traits to boost equivalents:
-//
-#define BOOST_HAS_SGI_TYPE_TRAITS
-
-#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Jens Maurer 2001.
-// 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.
-
-// config for libstdc++ v3
-// not much to go in here:
-
-#ifdef __GLIBCXX__
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
-#else
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
-#endif
-
-#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
-# define BOOST_NO_CWCHAR
-# define BOOST_NO_CWCTYPE
-# define BOOST_NO_STD_WSTRING
-# define BOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if defined(__osf__) && !defined(_REENTRANT) \
- && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
-// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
-// file is included, therefore for consistency we define it here as well.
-# define _REENTRANT
-#endif
-
-#ifdef __GLIBCXX__ // gcc 3.4 and greater:
-# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
- || defined(_GLIBCXX__PTHREADS)
- //
- // If the std lib has thread support turned on, then turn it on in Boost
- // as well. We do this because some gcc-3.4 std lib headers define _REENTANT
- // while others do not...
- //
-# define BOOST_HAS_THREADS
-# else
-# define BOOST_DISABLE_THREADS
-# endif
-#elif defined(__GLIBCPP__) \
- && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
- && !defined(_GLIBCPP__PTHREADS)
- // disable thread support if the std lib was built single threaded:
-# define BOOST_DISABLE_THREADS
-#endif
-
-#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
-// linux on arm apparently doesn't define _REENTRANT
-// so just turn on threading support whenever the std lib is thread safe:
-# define BOOST_HAS_THREADS
-#endif
-
-
-#if !defined(_GLIBCPP_USE_LONG_LONG) \
- && !defined(_GLIBCXX_USE_LONG_LONG)\
- && defined(BOOST_HAS_LONG_LONG)
-// May have been set by compiler/*.hpp, but "long long" without library
-// support is useless.
-# undef BOOST_HAS_LONG_LONG
-#endif
+++ /dev/null
-// (C) Copyright Jens Maurer 2001.
-// 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.
-
-// Modena C++ standard library (comes with KAI C++)
-
-#if !defined(MSIPL_COMPILE_H)
-# include <utility>
-# if !defined(__MSIPL_COMPILE_H)
-# error "This is not the Modena C++ library!"
-# endif
-#endif
-
-#ifndef MSIPL_NL_TYPES
-#define BOOST_NO_STD_MESSAGES
-#endif
-
-#ifndef MSIPL_WCHART
-#define BOOST_NO_STD_WSTRING
-#endif
-
-#define BOOST_STDLIB "Modena C++ standard library"
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Darin Adler 2001.
-// 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.
-
-// Metrowerks standard library:
-
-#ifndef __MSL_CPP__
-# include <utility>
-# ifndef __MSL_CPP__
-# error This is not the MSL standard library!
-# endif
-#endif
-
-#if __MSL_CPP__ >= 0x6000 // Pro 6
-# define BOOST_HAS_HASH
-# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
-#endif
-#define BOOST_HAS_SLIST
-
-#if __MSL_CPP__ < 0x6209
-# define BOOST_NO_STD_MESSAGES
-#endif
-
-// check C lib version for <stdint.h>
-#include <cstddef>
-
-#if defined(__MSL__) && (__MSL__ >= 0x5000)
-# define BOOST_HAS_STDINT_H
-# if !defined(__PALMOS_TRAPS__)
-# define BOOST_HAS_UNISTD_H
-# endif
- // boilerplate code:
-# include <boost/config/posix_features.hpp>
-#endif
-
-#if defined(_MWMT) || _MSL_THREADSAFE
-# define BOOST_HAS_THREADS
-#endif
-
-#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
-# define BOOST_NO_STD_USE_FACET
-# define BOOST_HAS_TWO_ARG_USE_FACET
-#endif
-
-
-#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001.
-// (C) Copyright David Abrahams 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Rogue Wave std lib:
-
-#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-# include <utility>
-# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-# error This is not the Rogue Wave standard library
-# endif
-#endif
-//
-// figure out a consistent version number:
-//
-#ifndef _RWSTD_VER
-# define BOOST_RWSTD_VER 0x010000
-#elif _RWSTD_VER < 0x010000
-# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
-#else
-# define BOOST_RWSTD_VER _RWSTD_VER
-#endif
-
-#ifndef _RWSTD_VER
-# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
-#else
-# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
-#endif
-
-//
-// Prior to version 2.2.0 the primary template for std::numeric_limits
-// does not have compile time constants, even though specializations of that
-// template do:
-//
-#if BOOST_RWSTD_VER < 0x020200
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#endif
-
-// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
-// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
-#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
-# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-# endif
-
-//
-// Borland version of numeric_limits lacks __int64 specialisation:
-//
-#ifdef __BORLANDC__
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#endif
-
-//
-// No std::iterator if it can't figure out default template args:
-//
-#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
-# define BOOST_NO_STD_ITERATOR
-#endif
-
-//
-// No iterator traits without partial specialization:
-//
-#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
-# define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// Prior to version 2.0, std::auto_ptr was buggy, and there were no
-// new-style iostreams, and no conformant std::allocator:
-//
-#if (BOOST_RWSTD_VER < 0x020000)
-# define BOOST_NO_AUTO_PTR
-# define BOOST_NO_STRINGSTREAM
-# define BOOST_NO_STD_ALLOCATOR
-# define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// No template iterator constructors without member template support:
-//
-#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#endif
-
-//
-// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
-// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
-// on HP aCC systems even though the allocator is in fact broken):
-//
-#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// If we have a std::locale, we still may not have std::use_facet:
-//
-#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
-# define BOOST_NO_STD_USE_FACET
-# define BOOST_HAS_TWO_ARG_USE_FACET
-#endif
-
-//
-// There's no std::distance prior to version 2, or without
-// partial specialization support:
-//
-#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
- #define BOOST_NO_STD_DISTANCE
-#endif
-
-//
-// Some versions of the rogue wave library don't have assignable
-// OutputIterators:
-//
-#if BOOST_RWSTD_VER < 0x020100
-# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#endif
-
-//
-// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
-//
-#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
-# undef BOOST_HAS_LONG_LONG
-#endif
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001.
-// (C) Copyright Jens Maurer 2001 - 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// generic SGI STL:
-
-#if !defined(__STL_CONFIG_H)
-# include <utility>
-# if !defined(__STL_CONFIG_H)
-# error "This is not the SGI STL!"
-# endif
-#endif
-
-//
-// No std::iterator traits without partial specialisation:
-//
-#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
-# define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// No std::stringstream with gcc < 3
-//
-#if defined(__GNUC__) && (__GNUC__ < 3) && \
- ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
- !defined(__STL_USE_NEW_IOSTREAMS) || \
- defined(__APPLE_CC__)
- // Note that we only set this for GNU C++ prior to 2.95 since the
- // latest patches for that release do contain a minimal <sstream>
- // If you are running a 2.95 release prior to 2.95.3 then this will need
- // setting, but there is no way to detect that automatically (other
- // than by running the configure script).
- // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
- // have <sstream>.
-# define BOOST_NO_STRINGSTREAM
-#endif
-
-//
-// Assume no std::locale without own iostreams (this may be an
-// incorrect assumption in some cases):
-//
-#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
-# define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// Original native SGI streams have non-standard std::messages facet:
-//
-#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
-# define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// SGI's new iostreams have missing "const" in messages<>::open
-//
-#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
-# define BOOST_NO_STD_MESSAGES
-#endif
-
-//
-// No template iterator constructors, or std::allocator
-// without member templates:
-//
-#if !defined(__STL_MEMBER_TEMPLATES)
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// We always have SGI style hash_set, hash_map, and slist:
-//
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
-
-//
-// If this is GNU libstdc++2, then no <limits> and no std::wstring:
-//
-#if (defined(__GNUC__) && (__GNUC__ < 3))
-# include <string>
-# if defined(__BASTRING__)
-# define BOOST_NO_LIMITS
-// Note: <boost/limits.hpp> will provide compile-time constants
-# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-# define BOOST_NO_STD_WSTRING
-# endif
-#endif
-
-//
-// There is no standard iterator unless we have namespace support:
-//
-#if !defined(__STL_USE_NAMESPACES)
-# define BOOST_NO_STD_ITERATOR
-#endif
-
-//
-// Intrinsic type_traits support.
-// The SGI STL has it's own __type_traits class, which
-// has intrinsic compiler support with SGI's compilers.
-// Whatever map SGI style type traits to boost equivalents:
-//
-#define BOOST_HAS_SGI_TYPE_TRAITS
-
-#define BOOST_STDLIB "SGI standard library"
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 2002.
-// (C) Copyright Darin Adler 2001.
-// (C) Copyright Jens Maurer 2001.
-// 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.
-
-// STLPort standard library config:
-
-#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-# include <utility>
-# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-# error "This is not STLPort!"
-# endif
-#endif
-
-//
-// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-// for versions prior to 4.1(beta)
-//
-#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#endif
-
-//
-// If STLport thinks that there is no partial specialisation, then there is no
-// std::iterator traits:
-//
-#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
-# define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// No new style iostreams on GCC without STLport's iostreams enabled:
-//
-#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
-# define BOOST_NO_STRINGSTREAM
-#endif
-
-//
-// No new iostreams implies no std::locale, and no std::stringstream:
-//
-#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
-# define BOOST_NO_STD_LOCALE
-# define BOOST_NO_STRINGSTREAM
-#endif
-
-//
-// If the streams are not native, and we have a "using ::x" compiler bug
-// then the io stream facets are not available in namespace std::
-//
-#ifdef _STLPORT_VERSION
-# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-# define BOOST_NO_STD_LOCALE
-# endif
-#else
-# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-# define BOOST_NO_STD_LOCALE
-# endif
-#endif
-
-//
-// Without member template support enabled, their are no template
-// iterate constructors, and no std::allocator:
-//
-#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-//
-// however we always have at least a partial allocator:
-//
-#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-
-#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// If STLport thinks there is no wchar_t at all, then we have to disable
-// the support for the relevant specilazations of std:: templates.
-//
-#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
-# ifndef BOOST_NO_STD_WSTRING
-# define BOOST_NO_STD_WSTRING
-# endif
-# ifndef BOOST_NO_STD_WSTREAMBUF
-# define BOOST_NO_STD_WSTREAMBUF
-# endif
-#endif
-
-//
-// We always have SGI style hash_set, hash_map, and slist:
-//
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
-
-//
-// STLport does a good job of importing names into namespace std::,
-// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
-// workaround does not conflict with STLports:
-//
-//
-// Harold Howe says:
-// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
-// BCB6 does cause problems. If we detect C++ Builder, then don't define
-// BOOST_NO_STDC_NAMESPACE
-//
-#if !defined(__BORLANDC__) && !defined(__DMC__)
-//
-// If STLport is using it's own namespace, and the real names are in
-// the global namespace, then we duplicate STLport's using declarations
-// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
-// necessarily import all the names we need into namespace std::
-//
-# if (defined(__STL_IMPORT_VENDOR_CSTD) \
- || defined(__STL_USE_OWN_NAMESPACE) \
- || defined(_STLP_IMPORT_VENDOR_CSTD) \
- || defined(_STLP_USE_OWN_NAMESPACE)) \
- && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
-# define BOOST_NO_STDC_NAMESPACE
-# define BOOST_NO_EXCEPTION_STD_NAMESPACE
-# endif
-#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
-// STLport doesn't import std::abs correctly:
-#include <stdlib.h>
-namespace std { using ::abs; }
-// and strcmp/strcpy don't get imported either ('cos they are macros)
-#include <string.h>
-#ifdef strcpy
-# undef strcpy
-#endif
-#ifdef strcmp
-# undef strcmp
-#endif
-#ifdef _STLP_VENDOR_CSTD
-namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
-#endif
-#endif
-
-//
-// std::use_facet may be non-standard, uses a class instead:
-//
-#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
-# define BOOST_NO_STD_USE_FACET
-# define BOOST_HAS_STLP_USE_FACET
-#endif
-
-//
-// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
-// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import
-// into std:: ourselves).
-//
-#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
-# define BOOST_NO_CWCHAR
-# define BOOST_NO_CWCTYPE
-#endif
-
-//
-// If STLport for some reason was configured so that it thinks that wchar_t
-// is not an intrinsic type, then we have to disable the support for it as
-// well (we would be missing required specializations otherwise).
-//
-#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
-# undef BOOST_NO_INTRINSIC_WCHAR_T
-# define BOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-//
-// Borland ships a version of STLport with C++ Builder 6 that lacks
-// hashtables and the like:
-//
-#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
-# undef BOOST_HAS_HASH
-#endif
-
-//
-// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max
-//
-#if defined(__GNUC__) && (__GNUC__ < 3)
-# include <algorithm> // for std::min and std::max
-# define BOOST_USING_STD_MIN() ((void)0)
-# define BOOST_USING_STD_MAX() ((void)0)
-namespace boost { using std::min; using std::max; }
-#endif
-
-#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
-
-
-
-
-
-
-
-
+++ /dev/null
-// (C) Copyright John Maddock 2001 - 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.
-
-#if __IBMCPP__ <= 501
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-#define BOOST_HAS_MACRO_USE_FACET
-#define BOOST_NO_STD_MESSAGES
-
-#define BOOST_STDLIB "Visual Age default standard library"
-
-
-
+++ /dev/null
-// Boost config.hpp configuration header file ------------------------------//
-
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright Bill Kempf 2002.
-// (C) Copyright Jens Maurer 2002.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Gennaro Prota 2003.
-// (C) Copyright Eric Friedman 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Boost config.hpp policy and rationale documentation has been moved to
-// http://www.boost.org/libs/config
-//
-// This file is intended to be stable, and relatively unchanging.
-// It should contain boilerplate code only - no compiler specific
-// code unless it is unavoidable - no changes unless unavoidable.
-
-#ifndef BOOST_CONFIG_SUFFIX_HPP
-#define BOOST_CONFIG_SUFFIX_HPP
-
-//
-// look for long long by looking for the appropriate macros in <limits.h>.
-// Note that we use limits.h rather than climits for maximal portability,
-// remember that since these just declare a bunch of macros, there should be
-// no namespace issues from this.
-//
-#include <limits.h>
-# if !defined(BOOST_HAS_LONG_LONG) \
- && !defined(BOOST_MSVC) && !defined(__BORLANDC__) \
- && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-# define BOOST_HAS_LONG_LONG
-#endif
-
-// TODO: Remove the following lines after the 1.33 release because the presence
-// of an integral 64 bit type has nothing to do with support for long long.
-
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(__DECCXX_VER)
-# define BOOST_NO_INTEGRAL_INT64_T
-#endif
-
-// GCC 3.x will clean up all of those nasty macro definitions that
-// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
-// it under GCC 3.x.
-#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
-# undef BOOST_NO_CTYPE_FUNCTIONS
-#endif
-
-
-//
-// Assume any extensions are in namespace std:: unless stated otherwise:
-//
-# ifndef BOOST_STD_EXTENSION_NAMESPACE
-# define BOOST_STD_EXTENSION_NAMESPACE std
-# endif
-
-//
-// If cv-qualified specializations are not allowed, then neither are cv-void ones:
-//
-# if defined(BOOST_NO_CV_SPECIALIZATIONS) \
- && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-# endif
-
-//
-// If there is no numeric_limits template, then it can't have any compile time
-// constants either!
-//
-# if defined(BOOST_NO_LIMITS) \
- && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-# endif
-
-//
-// if there is no long long then there is no specialisation
-// for numeric_limits<long long> either:
-//
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
-# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-#endif
-
-//
-// if there is no __int64 then there is no specialisation
-// for numeric_limits<__int64> either:
-//
-#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#endif
-
-//
-// if member templates are supported then so is the
-// VC6 subset of member templates:
-//
-# if !defined(BOOST_NO_MEMBER_TEMPLATES) \
- && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-# endif
-
-//
-// Without partial specialization, can't test for partial specialisation bugs:
-//
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
-# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-# endif
-
-//
-// Without partial specialization, we can't have array-type partial specialisations:
-//
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-# endif
-
-//
-// Without partial specialization, std::iterator_traits can't work:
-//
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# endif
-
-//
-// Without member template support, we can't have template constructors
-// in the standard library either:
-//
-# if defined(BOOST_NO_MEMBER_TEMPLATES) \
- && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
- && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# endif
-
-//
-// Without member template support, we can't have a conforming
-// std::allocator template either:
-//
-# if defined(BOOST_NO_MEMBER_TEMPLATES) \
- && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
- && !defined(BOOST_NO_STD_ALLOCATOR)
-# define BOOST_NO_STD_ALLOCATOR
-# endif
-
-//
-// without ADL support then using declarations will break ADL as well:
-//
-#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#endif
-
-//
-// If we have a standard allocator, then we have a partial one as well:
-//
-#if !defined(BOOST_NO_STD_ALLOCATOR)
-# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#endif
-
-//
-// We can't have a working std::use_facet if there is no std::locale:
-//
-# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
-# define BOOST_NO_STD_USE_FACET
-# endif
-
-//
-// We can't have a std::messages facet if there is no std::locale:
-//
-# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
-# define BOOST_NO_STD_MESSAGES
-# endif
-
-//
-// We can't have a working std::wstreambuf if there is no std::locale:
-//
-# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
-# define BOOST_NO_STD_WSTREAMBUF
-# endif
-
-//
-// We can't have a <cwctype> if there is no <cwchar>:
-//
-# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
-# define BOOST_NO_CWCTYPE
-# endif
-
-//
-// We can't have a swprintf if there is no <cwchar>:
-//
-# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
-# define BOOST_NO_SWPRINTF
-# endif
-
-//
-// If Win32 support is turned off, then we must turn off
-// threading support also, unless there is some other
-// thread API enabled:
-//
-#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
- && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
-# define BOOST_DISABLE_THREADS
-#endif
-
-//
-// Turn on threading support if the compiler thinks that it's in
-// multithreaded mode. We put this here because there are only a
-// limited number of macros that identify this (if there's any missing
-// from here then add to the appropriate compiler section):
-//
-#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
- || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
-# define BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if BOOST_DISABLE_THREADS is defined:
-//
-#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
-# undef BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if we don't recognise the threading API:
-//
-#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
- && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
- && !defined(BOOST_HAS_MPTASKS)
-# undef BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading detail macros off if we don't (want to) use threading
-//
-#ifndef BOOST_HAS_THREADS
-# undef BOOST_HAS_PTHREADS
-# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-# undef BOOST_HAS_WINTHREADS
-# undef BOOST_HAS_BETHREADS
-# undef BOOST_HAS_MPTASKS
-#endif
-
-//
-// If the compiler claims to be C99 conformant, then it had better
-// have a <stdint.h>:
-//
-# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-# define BOOST_HAS_STDINT_H
-# endif
-
-//
-// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
-// Note that this is for backwards compatibility only.
-//
-# ifndef BOOST_HAS_SLIST
-# define BOOST_NO_SLIST
-# endif
-
-# ifndef BOOST_HAS_HASH
-# define BOOST_NO_HASH
-# endif
-
-// BOOST_HAS_ABI_HEADERS
-// This macro gets set if we have headers that fix the ABI,
-// and prevent ODR violations when linking to external libraries:
-#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
-# define BOOST_HAS_ABI_HEADERS
-#endif
-
-#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
-# undef BOOST_HAS_ABI_HEADERS
-#endif
-
-// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
-// Because std::size_t usage is so common, even in boost headers which do not
-// otherwise use the C library, the <cstddef> workaround is included here so
-// that ugly workaround code need not appear in many other boost headers.
-// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
-// must still be #included in the usual places so that <cstddef> inclusion
-// works as expected with standard conforming compilers. The resulting
-// double inclusion of <cstddef> is harmless.
-
-# ifdef BOOST_NO_STDC_NAMESPACE
-# include <cstddef>
- namespace std { using ::ptrdiff_t; using ::size_t; }
-# endif
-
-// Workaround for the unfortunate min/max macros defined by some platform headers
-
-#define BOOST_PREVENT_MACRO_SUBSTITUTION
-
-#ifndef BOOST_USING_STD_MIN
-# define BOOST_USING_STD_MIN() using std::min
-#endif
-
-#ifndef BOOST_USING_STD_MAX
-# define BOOST_USING_STD_MAX() using std::max
-#endif
-
-// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
-
-# ifdef BOOST_NO_STD_MIN_MAX
-
-namespace std {
- template <class _Tp>
- inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
- return __b < __a ? __b : __a;
- }
- template <class _Tp>
- inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
- return __a < __b ? __b : __a;
- }
-}
-
-# endif
-
-// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
-// On compilers which don't allow in-class initialization of static integral
-// constant members, we must use enums as a workaround if we want the constants
-// to be available at compile-time. This macro gives us a convenient way to
-// declare such constants.
-
-# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
-# else
-# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
-# endif
-
-// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
-// When the standard library does not have a conforming std::use_facet there
-// are various workarounds available, but they differ from library to library.
-// The same problem occurs with has_facet.
-// These macros provide a consistent way to access a locale's facets.
-// Usage:
-// replace
-// std::use_facet<Type>(loc);
-// with
-// BOOST_USE_FACET(Type, loc);
-// Note do not add a std:: prefix to the front of BOOST_USE_FACET!
-// Use for BOOST_HAS_FACET is analagous.
-
-#if defined(BOOST_NO_STD_USE_FACET)
-# ifdef BOOST_HAS_TWO_ARG_USE_FACET
-# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
-# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
-# elif defined(BOOST_HAS_MACRO_USE_FACET)
-# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
-# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
-# elif defined(BOOST_HAS_STLP_USE_FACET)
-# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
-# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-# endif
-#else
-# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
-# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-#endif
-
-// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
-// Member templates are supported by some compilers even though they can't use
-// the A::template member<U> syntax, as a workaround replace:
-//
-// typedef typename A::template rebind<U> binder;
-//
-// with:
-//
-// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-# define BOOST_NESTED_TEMPLATE template
-#else
-# define BOOST_NESTED_TEMPLATE
-#endif
-
-// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
-// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
-// is defined, in which case it evaluates to return x; Use when you have a return
-// statement that can never be reached.
-
-#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
-# define BOOST_UNREACHABLE_RETURN(x) return x;
-#else
-# define BOOST_UNREACHABLE_RETURN(x)
-#endif
-
-// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
-//
-// Some compilers don't support the use of `typename' for dependent
-// types in deduced contexts, e.g.
-//
-// template <class T> void f(T, typename T::type);
-// ^^^^^^^^
-// Replace these declarations with:
-//
-// template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
-
-#ifndef BOOST_NO_DEDUCED_TYPENAME
-# define BOOST_DEDUCED_TYPENAME typename
-#else
-# define BOOST_DEDUCED_TYPENAME
-#endif
-
-// long long workaround ------------------------------------------//
-// On gcc (and maybe other compilers?) long long is alway supported
-// but it's use may generate either warnings (with -ansi), or errors
-// (with -pedantic -ansi) unless it's use is prefixed by __extension__
-//
-#if defined(BOOST_HAS_LONG_LONG)
-namespace boost{
-# ifdef __GNUC__
- __extension__ typedef long long long_long_type;
- __extension__ typedef unsigned long long ulong_long_type;
-# else
- typedef long long long_long_type;
- typedef unsigned long long ulong_long_type;
-# endif
-}
-#endif
-
-// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
-//
-// Some compilers have problems with function templates whose
-// template parameters don't appear in the function parameter
-// list (basically they just link one instantiation of the
-// template in the final executable). These macros provide a
-// uniform way to cope with the problem with no effects on the
-// calling syntax.
-
-// Example:
-//
-// #include <iostream>
-// #include <ostream>
-// #include <typeinfo>
-//
-// template <int n>
-// void f() { std::cout << n << ' '; }
-//
-// template <typename T>
-// void g() { std::cout << typeid(T).name() << ' '; }
-//
-// int main() {
-// f<1>();
-// f<2>();
-//
-// g<int>();
-// g<double>();
-// }
-//
-// With VC++ 6.0 the output is:
-//
-// 2 2 double double
-//
-// To fix it, write
-//
-// template <int n>
-// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
-//
-// template <typename T>
-// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
-//
-
-
-#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-# include "boost/type.hpp"
-# include "boost/non_type.hpp"
-
-# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
-# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
-
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
- , BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
- , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
- , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
- , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-#else
-
-// no workaround needed: expand to nothing
-
-# define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-
-#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-
-// ---------------------------------------------------------------------------//
-
-//
-// Helper macro BOOST_STRINGIZE:
-// Converts the parameter X to a string after macro replacement
-// on X has been performed.
-//
-#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#define BOOST_DO_STRINGIZE(X) #X
-
-//
-// Helper macro BOOST_JOIN:
-// The following piece of macro magic joins the two
-// arguments together, even when one of the arguments is
-// itself a macro (see 16.3.1 in C++ standard). The key
-// is that macro expansion of macro arguments does not
-// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
-//
-#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
-#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
-#define BOOST_DO_JOIN2( X, Y ) X##Y
-
-//
-// Set some default values for compiler/library/platform names.
-// These are for debugging config setup only:
-//
-# ifndef BOOST_COMPILER
-# define BOOST_COMPILER "Unknown ISO C++ Compiler"
-# endif
-# ifndef BOOST_STDLIB
-# define BOOST_STDLIB "Unknown ISO standard library"
-# endif
-# ifndef BOOST_PLATFORM
-# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
- || defined(_POSIX_SOURCE)
-# define BOOST_PLATFORM "Generic Unix"
-# else
-# define BOOST_PLATFORM "Unknown"
-# endif
-# endif
-
-#endif
-
-
-
+++ /dev/null
-// boost/config/user.hpp ---------------------------------------------------//
-
-// (C) Copyright John Maddock 2001.
-// 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)
-
-// Do not check in modified versions of this file,
-// This file may be customized by the end user, but not by boost.
-
-//
-// Use this file to define a site and compiler specific
-// configuration policy:
-//
-
-// define this to locate a compiler config file:
-// #define BOOST_COMPILER_CONFIG <myheader>
-
-// define this to locate a stdlib config file:
-// #define BOOST_STDLIB_CONFIG <myheader>
-
-// define this to locate a platform config file:
-// #define BOOST_PLATFORM_CONFIG <myheader>
-
-// define this to disable compiler config,
-// use if your compiler config has nothing to set:
-// #define BOOST_NO_COMPILER_CONFIG
-
-// define this to disable stdlib config,
-// use if your stdlib config has nothing to set:
-// #define BOOST_NO_STDLIB_CONFIG
-
-// define this to disable platform config,
-// use if your platform config has nothing to set:
-// #define BOOST_NO_PLATFORM_CONFIG
-
-// define this to disable all config options,
-// excluding the user config. Use if your
-// setup is fully ISO compliant, and has no
-// useful extensions, or for autoconf generated
-// setups:
-// #define BOOST_NO_CONFIG
-
-// define this to make the config "optimistic"
-// about unknown compiler versions. Normally
-// unknown compiler versions are assumed to have
-// all the defects of the last known version, however
-// setting this flag, causes the config to assume
-// that unknown compiler versions are fully conformant
-// with the standard:
-// #define BOOST_STRICT_CONFIG
-
-// define this to cause the config to halt compilation
-// with an #error if it encounters anything unknown --
-// either an unknown compiler version or an unknown
-// compiler/platform/library:
-// #define BOOST_ASSERT_CONFIG
-
-
-// define if you want to disable threading support, even
-// when available:
-// #define BOOST_DISABLE_THREADS
-
-// define when you want to disable Win32 specific features
-// even when available:
-// #define BOOST_DISABLE_WIN32
-
-// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any
-// prefix/suffix headers that normally control things like struct
-// packing and alignment.
-// #define BOOST_DISABLE_ABI_HEADERS
-
-// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
-// boost.config would normally select, any replacement should set up
-// struct packing and alignment options as required.
-// #define BOOST_ABI_PREFIX my-header-name
-
-// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever
-// boost.config would normally select, any replacement should undo
-// the effects of the prefix header.
-// #define BOOST_ABI_SUFFIX my-header-name
-
-// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source,
-// to be linked as dll's rather than static libraries on Microsoft Windows
-// (this macro is used to turn on __declspec(dllimport) modifiers, so that
-// the compiler knows which symbols to look for in a dll rather than in a
-// static library). Note that there may be some libraries that can only
-// be statically linked (Boost.Test for example) and others which may only
-// be dynamically linked (Boost.Threads for example), in these cases this
-// macro has no effect.
-// #define BOOST_ALL_DYN_LINK
-
-// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll
-// rather than a static library on Microsoft Windows: replace the WHATEVER
-// part of the macro name with the name of the library that you want to
-// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or
-// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport)
-// modifiers, so that the compiler knows which symbols to look for in a dll
-// rather than in a static library).
-// Note that there may be some libraries that can only be statically linked
-// (Boost.Test for example) and others which may only be dynamically linked
-// (Boost.Threads for example), in these cases this macro is unsupported.
-// #define BOOST_WHATEVER_DYN_LINK
-
-// BOOST_ALL_NO_LIB: Tells the config system not to automatically select
-// which libraries to link against.
-// Normally if a compiler supports #pragma lib, then the correct library
-// build variant will be automatically selected and linked against,
-// simply by the act of including one of that library's headers.
-// This macro turns that feature off.
-// #define BOOST_ALL_NO_LIB
-
-// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically
-// select which library to link against for library "whatever",
-// replace WHATEVER in the macro name with the name of the library;
-// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.
-// Normally if a compiler supports #pragma lib, then the correct library
-// build variant will be automatically selected and linked against, simply
-// by the act of including one of that library's headers. This macro turns
-// that feature off.
-// #define BOOST_WHATEVER_NO_LIB
-
-
-
+++ /dev/null
-// Boost CRC library crc.hpp header file -----------------------------------//
-
-// Copyright 2001, 2004 Daryle Walker. Use, modification, and distribution are
-// subject to the Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
-
-// See <http://www.boost.org/libs/crc/> for the library's home page.
-
-#ifndef BOOST_CRC_HPP
-#define BOOST_CRC_HPP
-
-#include <boost/config.hpp> // for BOOST_STATIC_CONSTANT, etc.
-#include <boost/integer.hpp> // for boost::uint_t
-
-#include <climits> // for CHAR_BIT, etc.
-#include <cstddef> // for std::size_t
-
-#include <boost/limits.hpp> // for std::numeric_limits
-
-
-// The type of CRC parameters that can go in a template should be related
-// on the CRC's bit count. This macro expresses that type in a compact
-// form, but also allows an alternate type for compilers that don't support
-// dependent types (in template value-parameters).
-#if !(defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || (defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)))
-#define BOOST_CRC_PARM_TYPE typename ::boost::uint_t<Bits>::fast
-#else
-#define BOOST_CRC_PARM_TYPE unsigned long
-#endif
-
-// Some compilers [MS VC++ 6] cannot correctly set up several versions of a
-// function template unless every template argument can be unambiguously
-// deduced from the function arguments. (The bug is hidden if only one version
-// is needed.) Since all of the CRC function templates have this problem, the
-// workaround is to make up a dummy function argument that encodes the template
-// arguments. Calls to such template functions need all their template
-// arguments explicitly specified. At least one compiler that needs this
-// workaround also needs the default value for the dummy argument to be
-// specified in the definition.
-#if defined(__GNUC__) || !defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)
-#define BOOST_CRC_DUMMY_PARM_TYPE
-#define BOOST_CRC_DUMMY_INIT
-#define BOOST_ACRC_DUMMY_PARM_TYPE
-#define BOOST_ACRC_DUMMY_INIT
-#else
-namespace boost { namespace detail {
- template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
- struct dummy_crc_argument { };
-} }
-#define BOOST_CRC_DUMMY_PARM_TYPE , detail::dummy_crc_argument<Bits, \
- TruncPoly, InitRem, FinalXor, ReflectIn, ReflectRem> *p_
-#define BOOST_CRC_DUMMY_INIT BOOST_CRC_DUMMY_PARM_TYPE = 0
-#define BOOST_ACRC_DUMMY_PARM_TYPE , detail::dummy_crc_argument<Bits, \
- TruncPoly, 0, 0, false, false> *p_
-#define BOOST_ACRC_DUMMY_INIT BOOST_ACRC_DUMMY_PARM_TYPE = 0
-#endif
-
-
-namespace boost
-{
-
-
-// Forward declarations ----------------------------------------------------//
-
-template < std::size_t Bits >
- class crc_basic;
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly = 0u,
- BOOST_CRC_PARM_TYPE InitRem = 0u,
- BOOST_CRC_PARM_TYPE FinalXor = 0u, bool ReflectIn = false,
- bool ReflectRem = false >
- class crc_optimal;
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
- typename uint_t<Bits>::fast crc( void const *buffer,
- std::size_t byte_count
- BOOST_CRC_DUMMY_PARM_TYPE );
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly >
- typename uint_t<Bits>::fast augmented_crc( void const *buffer,
- std::size_t byte_count, typename uint_t<Bits>::fast initial_remainder
- BOOST_ACRC_DUMMY_PARM_TYPE );
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly >
- typename uint_t<Bits>::fast augmented_crc( void const *buffer,
- std::size_t byte_count
- BOOST_ACRC_DUMMY_PARM_TYPE );
-
-typedef crc_optimal<16, 0x8005, 0, 0, true, true> crc_16_type;
-typedef crc_optimal<16, 0x1021, 0xFFFF, 0, false, false> crc_ccitt_type;
-typedef crc_optimal<16, 0x8408, 0, 0, true, true> crc_xmodem_type;
-
-typedef crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true>
- crc_32_type;
-
-
-// Forward declarations for implementation detail stuff --------------------//
-// (Just for the stuff that will be needed for the next two sections)
-
-namespace detail
-{
- template < std::size_t Bits >
- struct mask_uint_t;
-
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned char>::digits >;
-
- #if USHRT_MAX > UCHAR_MAX
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned short>::digits >;
- #endif
-
- #if UINT_MAX > USHRT_MAX
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned int>::digits >;
- #endif
-
- #if ULONG_MAX > UINT_MAX
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned long>::digits >;
- #endif
-
- template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, bool Reflect >
- struct crc_table_t;
-
- template < std::size_t Bits, bool DoReflect >
- class crc_helper;
-
- #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template < std::size_t Bits >
- class crc_helper< Bits, false >;
- #endif
-
-} // namespace detail
-
-
-// Simple cyclic redundancy code (CRC) class declaration -------------------//
-
-template < std::size_t Bits >
-class crc_basic
-{
- // Implementation type
- typedef detail::mask_uint_t<Bits> masking_type;
-
-public:
- // Type
- typedef typename masking_type::least value_type;
-
- // Constant for the template parameter
- BOOST_STATIC_CONSTANT( std::size_t, bit_count = Bits );
-
- // Constructor
- explicit crc_basic( value_type truncated_polynominal,
- value_type initial_remainder = 0, value_type final_xor_value = 0,
- bool reflect_input = false, bool reflect_remainder = false );
-
- // Internal Operations
- value_type get_truncated_polynominal() const;
- value_type get_initial_remainder() const;
- value_type get_final_xor_value() const;
- bool get_reflect_input() const;
- bool get_reflect_remainder() const;
-
- value_type get_interim_remainder() const;
- void reset( value_type new_rem );
- void reset();
-
- // External Operations
- void process_bit( bool bit );
- void process_bits( unsigned char bits, std::size_t bit_count );
- void process_byte( unsigned char byte );
- void process_block( void const *bytes_begin, void const *bytes_end );
- void process_bytes( void const *buffer, std::size_t byte_count );
-
- value_type checksum() const;
-
-private:
- // Member data
- value_type rem_;
- value_type poly_, init_, final_; // non-const to allow assignability
- bool rft_in_, rft_out_; // non-const to allow assignability
-
-}; // boost::crc_basic
-
-
-// Optimized cyclic redundancy code (CRC) class declaration ----------------//
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-class crc_optimal
-{
- // Implementation type
- typedef detail::mask_uint_t<Bits> masking_type;
-
-public:
- // Type
- typedef typename masking_type::fast value_type;
-
- // Constants for the template parameters
- BOOST_STATIC_CONSTANT( std::size_t, bit_count = Bits );
- BOOST_STATIC_CONSTANT( value_type, truncated_polynominal = TruncPoly );
- BOOST_STATIC_CONSTANT( value_type, initial_remainder = InitRem );
- BOOST_STATIC_CONSTANT( value_type, final_xor_value = FinalXor );
- BOOST_STATIC_CONSTANT( bool, reflect_input = ReflectIn );
- BOOST_STATIC_CONSTANT( bool, reflect_remainder = ReflectRem );
-
- // Constructor
- explicit crc_optimal( value_type init_rem = InitRem );
-
- // Internal Operations
- value_type get_truncated_polynominal() const;
- value_type get_initial_remainder() const;
- value_type get_final_xor_value() const;
- bool get_reflect_input() const;
- bool get_reflect_remainder() const;
-
- value_type get_interim_remainder() const;
- void reset( value_type new_rem = InitRem );
-
- // External Operations
- void process_byte( unsigned char byte );
- void process_block( void const *bytes_begin, void const *bytes_end );
- void process_bytes( void const *buffer, std::size_t byte_count );
-
- value_type checksum() const;
-
- // Operators
- void operator ()( unsigned char byte );
- value_type operator ()() const;
-
-private:
- // The implementation of output reflection depends on both reflect states.
- BOOST_STATIC_CONSTANT( bool, reflect_output = (ReflectRem != ReflectIn) );
-
- #ifndef __BORLANDC__
- #define BOOST_CRC_REF_OUT_VAL reflect_output
- #else
- typedef crc_optimal self_type;
- #define BOOST_CRC_REF_OUT_VAL (self_type::reflect_output)
- #endif
-
- // More implementation types
- typedef detail::crc_table_t<Bits, TruncPoly, ReflectIn> crc_table_type;
- typedef detail::crc_helper<Bits, ReflectIn> helper_type;
- typedef detail::crc_helper<Bits, BOOST_CRC_REF_OUT_VAL> reflect_out_type;
-
- #undef BOOST_CRC_REF_OUT_VAL
-
- // Member data
- value_type rem_;
-
-}; // boost::crc_optimal
-
-
-// Implementation detail stuff ---------------------------------------------//
-
-namespace detail
-{
- // Forward declarations for more implementation details
- template < std::size_t Bits >
- struct high_uint_t;
-
- template < std::size_t Bits >
- struct reflector;
-
-
- // Traits class for mask; given the bit number
- // (1-based), get the mask for that bit by itself.
- template < std::size_t Bits >
- struct high_uint_t
- : boost::uint_t< Bits >
- {
- typedef boost::uint_t<Bits> base_type;
- typedef typename base_type::least least;
- typedef typename base_type::fast fast;
-
-#if defined(__EDG_VERSION__) && __EDG_VERSION__ <= 243
- static const least high_bit = 1ul << ( Bits - 1u );
- static const fast high_bit_fast = 1ul << ( Bits - 1u );
-#else
- BOOST_STATIC_CONSTANT( least, high_bit = (least( 1u ) << ( Bits
- - 1u )) );
- BOOST_STATIC_CONSTANT( fast, high_bit_fast = (fast( 1u ) << ( Bits
- - 1u )) );
-#endif
-
- }; // boost::detail::high_uint_t
-
-
- // Reflection routine class wrapper
- // (since MS VC++ 6 couldn't handle the unwrapped version)
- template < std::size_t Bits >
- struct reflector
- {
- typedef typename boost::uint_t<Bits>::fast value_type;
-
- static value_type reflect( value_type x );
-
- }; // boost::detail::reflector
-
- // Function that reflects its argument
- template < std::size_t Bits >
- typename reflector<Bits>::value_type
- reflector<Bits>::reflect
- (
- typename reflector<Bits>::value_type x
- )
- {
- value_type reflection = 0;
- value_type const one = 1;
-
- for ( std::size_t i = 0 ; i < Bits ; ++i, x >>= 1 )
- {
- if ( x & one )
- {
- reflection |= ( one << (Bits - 1u - i) );
- }
- }
-
- return reflection;
- }
-
-
- // Traits class for masks; given the bit number (1-based),
- // get the mask for that bit and its lower bits.
- template < std::size_t Bits >
- struct mask_uint_t
- : high_uint_t< Bits >
- {
- typedef high_uint_t<Bits> base_type;
- typedef typename base_type::least least;
- typedef typename base_type::fast fast;
-
- #ifndef __BORLANDC__
- using base_type::high_bit;
- using base_type::high_bit_fast;
- #else
- BOOST_STATIC_CONSTANT( least, high_bit = base_type::high_bit );
- BOOST_STATIC_CONSTANT( fast, high_bit_fast = base_type::high_bit_fast );
- #endif
-
-#if defined(__EDG_VERSION__) && __EDG_VERSION__ <= 243
- static const least sig_bits = (~( ~( 0ul ) << Bits )) ;
-#else
- BOOST_STATIC_CONSTANT( least, sig_bits = (~( ~(least( 0u )) << Bits )) );
-#endif
-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
- // Work around a weird bug that ICEs the compiler in build_c_cast
- BOOST_STATIC_CONSTANT( fast, sig_bits_fast = static_cast<fast>(sig_bits) );
-#else
- BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-#endif
- }; // boost::detail::mask_uint_t
-
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned char>::digits >
- : high_uint_t< std::numeric_limits<unsigned char>::digits >
- {
- typedef high_uint_t<std::numeric_limits<unsigned char>::digits>
- base_type;
- typedef base_type::least least;
- typedef base_type::fast fast;
-
- #ifndef __BORLANDC__
- using base_type::high_bit;
- using base_type::high_bit_fast;
- #else
- BOOST_STATIC_CONSTANT( least, high_bit = base_type::high_bit );
- BOOST_STATIC_CONSTANT( fast, high_bit_fast = base_type::high_bit_fast );
- #endif
-
- BOOST_STATIC_CONSTANT( least, sig_bits = (~( least(0u) )) );
- BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-
- }; // boost::detail::mask_uint_t
-
- #if USHRT_MAX > UCHAR_MAX
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned short>::digits >
- : high_uint_t< std::numeric_limits<unsigned short>::digits >
- {
- typedef high_uint_t<std::numeric_limits<unsigned short>::digits>
- base_type;
- typedef base_type::least least;
- typedef base_type::fast fast;
-
- #ifndef __BORLANDC__
- using base_type::high_bit;
- using base_type::high_bit_fast;
- #else
- BOOST_STATIC_CONSTANT( least, high_bit = base_type::high_bit );
- BOOST_STATIC_CONSTANT( fast, high_bit_fast = base_type::high_bit_fast );
- #endif
-
- BOOST_STATIC_CONSTANT( least, sig_bits = (~( least(0u) )) );
- BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-
- }; // boost::detail::mask_uint_t
- #endif
-
- #if UINT_MAX > USHRT_MAX
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned int>::digits >
- : high_uint_t< std::numeric_limits<unsigned int>::digits >
- {
- typedef high_uint_t<std::numeric_limits<unsigned int>::digits>
- base_type;
- typedef base_type::least least;
- typedef base_type::fast fast;
-
- #ifndef __BORLANDC__
- using base_type::high_bit;
- using base_type::high_bit_fast;
- #else
- BOOST_STATIC_CONSTANT( least, high_bit = base_type::high_bit );
- BOOST_STATIC_CONSTANT( fast, high_bit_fast = base_type::high_bit_fast );
- #endif
-
- BOOST_STATIC_CONSTANT( least, sig_bits = (~( least(0u) )) );
- BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-
- }; // boost::detail::mask_uint_t
- #endif
-
- #if ULONG_MAX > UINT_MAX
- template < >
- struct mask_uint_t< std::numeric_limits<unsigned long>::digits >
- : high_uint_t< std::numeric_limits<unsigned long>::digits >
- {
- typedef high_uint_t<std::numeric_limits<unsigned long>::digits>
- base_type;
- typedef base_type::least least;
- typedef base_type::fast fast;
-
- #ifndef __BORLANDC__
- using base_type::high_bit;
- using base_type::high_bit_fast;
- #else
- BOOST_STATIC_CONSTANT( least, high_bit = base_type::high_bit );
- BOOST_STATIC_CONSTANT( fast, high_bit_fast = base_type::high_bit_fast );
- #endif
-
- BOOST_STATIC_CONSTANT( least, sig_bits = (~( least(0u) )) );
- BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-
- }; // boost::detail::mask_uint_t
- #endif
-
-
- // CRC table generator
- template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, bool Reflect >
- struct crc_table_t
- {
- BOOST_STATIC_CONSTANT( std::size_t, byte_combos = (1ul << CHAR_BIT) );
-
- typedef mask_uint_t<Bits> masking_type;
- typedef typename masking_type::fast value_type;
-#if defined(__BORLANDC__) && defined(_M_IX86) && (__BORLANDC__ == 0x560)
- // for some reason Borland's command line compiler (version 0x560)
- // chokes over this unless we do the calculation for it:
- typedef value_type table_type[ 0x100 ];
-#else
- typedef value_type table_type[ byte_combos ];
-#endif
-
- static void init_table();
-
- static table_type table_;
-
- }; // boost::detail::crc_table_t
-
- // CRC table generator static data member definition
- // (Some compilers [Borland C++] require the initializer to be present.)
- template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, bool Reflect >
- typename crc_table_t<Bits, TruncPoly, Reflect>::table_type
- crc_table_t<Bits, TruncPoly, Reflect>::table_
- = { 0 };
-
- // Populate CRC lookup table
- template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, bool Reflect >
- void
- crc_table_t<Bits, TruncPoly, Reflect>::init_table
- (
- )
- {
- // compute table only on the first run
- static bool did_init = false;
- if ( did_init ) return;
-
- // factor-out constants to avoid recalculation
- value_type const fast_hi_bit = masking_type::high_bit_fast;
- unsigned char const byte_hi_bit = 1u << (CHAR_BIT - 1u);
-
- // loop over every possible dividend value
- unsigned char dividend = 0;
- do
- {
- value_type remainder = 0;
-
- // go through all the dividend's bits
- for ( unsigned char mask = byte_hi_bit ; mask ; mask >>= 1 )
- {
- // check if divisor fits
- if ( dividend & mask )
- {
- remainder ^= fast_hi_bit;
- }
-
- // do polynominal division
- if ( remainder & fast_hi_bit )
- {
- remainder <<= 1;
- remainder ^= TruncPoly;
- }
- else
- {
- remainder <<= 1;
- }
- }
-
- table_[ crc_helper<CHAR_BIT, Reflect>::reflect(dividend) ]
- = crc_helper<Bits, Reflect>::reflect( remainder );
- }
- while ( ++dividend );
-
- did_init = true;
- }
-
- #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // Align the msb of the remainder to a byte
- template < std::size_t Bits, bool RightShift >
- class remainder
- {
- public:
- typedef typename uint_t<Bits>::fast value_type;
-
- static unsigned char align_msb( value_type rem )
- { return rem >> (Bits - CHAR_BIT); }
- };
-
- // Specialization for the case that the remainder has less
- // bits than a byte: align the remainder msb to the byte msb
- template < std::size_t Bits >
- class remainder< Bits, false >
- {
- public:
- typedef typename uint_t<Bits>::fast value_type;
-
- static unsigned char align_msb( value_type rem )
- { return rem << (CHAR_BIT - Bits); }
- };
- #endif
-
- // CRC helper routines
- template < std::size_t Bits, bool DoReflect >
- class crc_helper
- {
- public:
- // Type
- typedef typename uint_t<Bits>::fast value_type;
-
- #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // Possibly reflect a remainder
- static value_type reflect( value_type x )
- { return detail::reflector<Bits>::reflect( x ); }
-
- // Compare a byte to the remainder's highest byte
- static unsigned char index( value_type rem, unsigned char x )
- { return x ^ rem; }
-
- // Shift out the remainder's highest byte
- static value_type shift( value_type rem )
- { return rem >> CHAR_BIT; }
- #else
- // Possibly reflect a remainder
- static value_type reflect( value_type x )
- { return DoReflect ? detail::reflector<Bits>::reflect( x ) : x; }
-
- // Compare a byte to the remainder's highest byte
- static unsigned char index( value_type rem, unsigned char x )
- { return x ^ ( DoReflect ? rem :
- ((Bits>CHAR_BIT)?( rem >> (Bits - CHAR_BIT) ) :
- ( rem << (CHAR_BIT - Bits) ))); }
-
- // Shift out the remainder's highest byte
- static value_type shift( value_type rem )
- { return DoReflect ? rem >> CHAR_BIT : rem << CHAR_BIT; }
- #endif
-
- }; // boost::detail::crc_helper
-
- #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template < std::size_t Bits >
- class crc_helper<Bits, false>
- {
- public:
- // Type
- typedef typename uint_t<Bits>::fast value_type;
-
- // Possibly reflect a remainder
- static value_type reflect( value_type x )
- { return x; }
-
- // Compare a byte to the remainder's highest byte
- static unsigned char index( value_type rem, unsigned char x )
- { return x ^ remainder<Bits,(Bits>CHAR_BIT)>::align_msb( rem ); }
-
- // Shift out the remainder's highest byte
- static value_type shift( value_type rem )
- { return rem << CHAR_BIT; }
-
- }; // boost::detail::crc_helper
- #endif
-
-
-} // namespace detail
-
-
-// Simple CRC class function definitions -----------------------------------//
-
-template < std::size_t Bits >
-inline
-crc_basic<Bits>::crc_basic
-(
- typename crc_basic<Bits>::value_type truncated_polynominal,
- typename crc_basic<Bits>::value_type initial_remainder, // = 0
- typename crc_basic<Bits>::value_type final_xor_value, // = 0
- bool reflect_input, // = false
- bool reflect_remainder // = false
-)
- : rem_( initial_remainder ), poly_( truncated_polynominal )
- , init_( initial_remainder ), final_( final_xor_value )
- , rft_in_( reflect_input ), rft_out_( reflect_remainder )
-{
-}
-
-template < std::size_t Bits >
-inline
-typename crc_basic<Bits>::value_type
-crc_basic<Bits>::get_truncated_polynominal
-(
-) const
-{
- return poly_;
-}
-
-template < std::size_t Bits >
-inline
-typename crc_basic<Bits>::value_type
-crc_basic<Bits>::get_initial_remainder
-(
-) const
-{
- return init_;
-}
-
-template < std::size_t Bits >
-inline
-typename crc_basic<Bits>::value_type
-crc_basic<Bits>::get_final_xor_value
-(
-) const
-{
- return final_;
-}
-
-template < std::size_t Bits >
-inline
-bool
-crc_basic<Bits>::get_reflect_input
-(
-) const
-{
- return rft_in_;
-}
-
-template < std::size_t Bits >
-inline
-bool
-crc_basic<Bits>::get_reflect_remainder
-(
-) const
-{
- return rft_out_;
-}
-
-template < std::size_t Bits >
-inline
-typename crc_basic<Bits>::value_type
-crc_basic<Bits>::get_interim_remainder
-(
-) const
-{
- return rem_ & masking_type::sig_bits;
-}
-
-template < std::size_t Bits >
-inline
-void
-crc_basic<Bits>::reset
-(
- typename crc_basic<Bits>::value_type new_rem
-)
-{
- rem_ = new_rem;
-}
-
-template < std::size_t Bits >
-inline
-void
-crc_basic<Bits>::reset
-(
-)
-{
- this->reset( this->get_initial_remainder() );
-}
-
-template < std::size_t Bits >
-inline
-void
-crc_basic<Bits>::process_bit
-(
- bool bit
-)
-{
- value_type const high_bit_mask = masking_type::high_bit;
-
- // compare the new bit with the remainder's highest
- rem_ ^= ( bit ? high_bit_mask : 0u );
-
- // a full polynominal division step is done when the highest bit is one
- bool const do_poly_div = static_cast<bool>( rem_ & high_bit_mask );
-
- // shift out the highest bit
- rem_ <<= 1;
-
- // carry out the division, if needed
- if ( do_poly_div )
- {
- rem_ ^= poly_;
- }
-}
-
-template < std::size_t Bits >
-void
-crc_basic<Bits>::process_bits
-(
- unsigned char bits,
- std::size_t bit_count
-)
-{
- // ignore the bits above the ones we want
- bits <<= CHAR_BIT - bit_count;
-
- // compute the CRC for each bit, starting with the upper ones
- unsigned char const high_bit_mask = 1u << ( CHAR_BIT - 1u );
- for ( std::size_t i = bit_count ; i > 0u ; --i, bits <<= 1u )
- {
- process_bit( static_cast<bool>(bits & high_bit_mask) );
- }
-}
-
-template < std::size_t Bits >
-inline
-void
-crc_basic<Bits>::process_byte
-(
- unsigned char byte
-)
-{
- process_bits( (rft_in_ ? detail::reflector<CHAR_BIT>::reflect(byte)
- : byte), CHAR_BIT );
-}
-
-template < std::size_t Bits >
-void
-crc_basic<Bits>::process_block
-(
- void const * bytes_begin,
- void const * bytes_end
-)
-{
- for ( unsigned char const * p
- = static_cast<unsigned char const *>(bytes_begin) ; p < bytes_end ; ++p )
- {
- process_byte( *p );
- }
-}
-
-template < std::size_t Bits >
-inline
-void
-crc_basic<Bits>::process_bytes
-(
- void const * buffer,
- std::size_t byte_count
-)
-{
- unsigned char const * const b = static_cast<unsigned char const *>(
- buffer );
-
- process_block( b, b + byte_count );
-}
-
-template < std::size_t Bits >
-inline
-typename crc_basic<Bits>::value_type
-crc_basic<Bits>::checksum
-(
-) const
-{
- return ( (rft_out_ ? detail::reflector<Bits>::reflect( rem_ ) : rem_)
- ^ final_ ) & masking_type::sig_bits;
-}
-
-
-// Optimized CRC class function definitions --------------------------------//
-
-// Macro to compact code
-#define BOOST_CRC_OPTIMAL_NAME crc_optimal<Bits, TruncPoly, InitRem, \
- FinalXor, ReflectIn, ReflectRem>
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-BOOST_CRC_OPTIMAL_NAME::crc_optimal
-(
- typename BOOST_CRC_OPTIMAL_NAME::value_type init_rem // = InitRem
-)
- : rem_( helper_type::reflect(init_rem) )
-{
- crc_table_type::init_table();
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename BOOST_CRC_OPTIMAL_NAME::value_type
-BOOST_CRC_OPTIMAL_NAME::get_truncated_polynominal
-(
-) const
-{
- return TruncPoly;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename BOOST_CRC_OPTIMAL_NAME::value_type
-BOOST_CRC_OPTIMAL_NAME::get_initial_remainder
-(
-) const
-{
- return InitRem;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename BOOST_CRC_OPTIMAL_NAME::value_type
-BOOST_CRC_OPTIMAL_NAME::get_final_xor_value
-(
-) const
-{
- return FinalXor;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-bool
-BOOST_CRC_OPTIMAL_NAME::get_reflect_input
-(
-) const
-{
- return ReflectIn;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-bool
-BOOST_CRC_OPTIMAL_NAME::get_reflect_remainder
-(
-) const
-{
- return ReflectRem;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename BOOST_CRC_OPTIMAL_NAME::value_type
-BOOST_CRC_OPTIMAL_NAME::get_interim_remainder
-(
-) const
-{
- // Interim remainder should be _un_-reflected, so we have to undo it.
- return helper_type::reflect( rem_ ) & masking_type::sig_bits_fast;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-void
-BOOST_CRC_OPTIMAL_NAME::reset
-(
- typename BOOST_CRC_OPTIMAL_NAME::value_type new_rem // = InitRem
-)
-{
- rem_ = helper_type::reflect( new_rem );
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-void
-BOOST_CRC_OPTIMAL_NAME::process_byte
-(
- unsigned char byte
-)
-{
- process_bytes( &byte, sizeof(byte) );
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-void
-BOOST_CRC_OPTIMAL_NAME::process_block
-(
- void const * bytes_begin,
- void const * bytes_end
-)
-{
- // Recompute the CRC for each byte passed
- for ( unsigned char const * p
- = static_cast<unsigned char const *>(bytes_begin) ; p < bytes_end ; ++p )
- {
- // Compare the new byte with the remainder's higher bits to
- // get the new bits, shift out the remainder's current higher
- // bits, and update the remainder with the polynominal division
- // of the new bits.
- unsigned char const byte_index = helper_type::index( rem_, *p );
- rem_ = helper_type::shift( rem_ );
- rem_ ^= crc_table_type::table_[ byte_index ];
- }
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-void
-BOOST_CRC_OPTIMAL_NAME::process_bytes
-(
- void const * buffer,
- std::size_t byte_count
-)
-{
- unsigned char const * const b = static_cast<unsigned char const *>(
- buffer );
- process_block( b, b + byte_count );
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename BOOST_CRC_OPTIMAL_NAME::value_type
-BOOST_CRC_OPTIMAL_NAME::checksum
-(
-) const
-{
- return ( reflect_out_type::reflect(rem_) ^ get_final_xor_value() )
- & masking_type::sig_bits_fast;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-void
-BOOST_CRC_OPTIMAL_NAME::operator ()
-(
- unsigned char byte
-)
-{
- process_byte( byte );
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename BOOST_CRC_OPTIMAL_NAME::value_type
-BOOST_CRC_OPTIMAL_NAME::operator ()
-(
-) const
-{
- return checksum();
-}
-
-
-// CRC computation function definition -------------------------------------//
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly,
- BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor,
- bool ReflectIn, bool ReflectRem >
-inline
-typename uint_t<Bits>::fast
-crc
-(
- void const * buffer,
- std::size_t byte_count
- BOOST_CRC_DUMMY_INIT
-)
-{
- BOOST_CRC_OPTIMAL_NAME computer;
- computer.process_bytes( buffer, byte_count );
- return computer.checksum();
-}
-
-
-// Augmented-message CRC computation function definitions ------------------//
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly >
-typename uint_t<Bits>::fast
-augmented_crc
-(
- void const * buffer,
- std::size_t byte_count,
- typename uint_t<Bits>::fast initial_remainder
- BOOST_ACRC_DUMMY_INIT
-)
-{
- typedef unsigned char byte_type;
- typedef detail::mask_uint_t<Bits> masking_type;
- typedef detail::crc_table_t<Bits, TruncPoly, false> crc_table_type;
-
- typename masking_type::fast rem = initial_remainder;
- byte_type const * const b = static_cast<byte_type const *>( buffer );
- byte_type const * const e = b + byte_count;
-
- crc_table_type::init_table();
- for ( byte_type const * p = b ; p < e ; ++p )
- {
- // Use the current top byte as the table index to the next
- // "partial product." Shift out that top byte, shifting in
- // the next augmented-message byte. Complete the division.
- byte_type const byte_index = rem >> ( Bits - CHAR_BIT );
- rem <<= CHAR_BIT;
- rem |= *p;
- rem ^= crc_table_type::table_[ byte_index ];
- }
-
- return rem & masking_type::sig_bits_fast;
-}
-
-template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly >
-inline
-typename uint_t<Bits>::fast
-augmented_crc
-(
- void const * buffer,
- std::size_t byte_count
- BOOST_ACRC_DUMMY_INIT
-)
-{
- // The last function argument has its type specified so the other version of
- // augmented_crc will be called. If the cast wasn't in place, and the
- // BOOST_ACRC_DUMMY_INIT added a third argument (for a workaround), the "0"
- // would match as that third argument, leading to infinite recursion.
- return augmented_crc<Bits, TruncPoly>( buffer, byte_count,
- static_cast<typename uint_t<Bits>::fast>(0) );
-}
-
-
-} // namespace boost
-
-
-// Undo header-private macros
-#undef BOOST_CRC_OPTIMAL_NAME
-#undef BOOST_ACRC_DUMMY_INIT
-#undef BOOST_ACRC_DUMMY_PARM_TYPE
-#undef BOOST_CRC_DUMMY_INIT
-#undef BOOST_CRC_DUMMY_PARM_TYPE
-#undef BOOST_CRC_PARM_TYPE
-
-
-#endif // BOOST_CRC_HPP
-
+++ /dev/null
-/*
- *
- * 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/libs/regex for most recent version.
- * FILE cregex.cpp
- * VERSION see <boost/version.hpp>
- * DESCRIPTION: Declares POSIX API functions
- * + boost::RegEx high level wrapper.
- */
-
-#ifndef BOOST_RE_CREGEX_HPP
-#define BOOST_RE_CREGEX_HPP
-
-#ifndef BOOST_REGEX_CONFIG_HPP
-#include <boost/regex/config.hpp>
-#endif
-
-#include <boost/regex/v4/cregex.hpp>
-
-#endif /* include guard */
-
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// boost cstdint.hpp header file ------------------------------------------//
-
-// (C) Copyright Beman Dawes 1999.
-// (C) Copyright Jens Mauer 2001
-// (C) Copyright John Maddock 2001
-// Distributed under the 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/integer for documentation.
-
-// Revision History
-// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
-// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer)
-// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
-// 12 Nov 00 Merged <boost/stdint.h> (Jens Maurer)
-// 23 Sep 00 Added INTXX_C macro support (John Maddock).
-// 22 Sep 00 Better 64-bit support (John Maddock)
-// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost
-// 8 Aug 99 Initial version (Beman Dawes)
-
-
-#ifndef BOOST_CSTDINT_HPP
-#define BOOST_CSTDINT_HPP
-
-#include <boost/config.hpp>
-
-
-#ifdef BOOST_HAS_STDINT_H
-
-// The following #include is an implementation artifact; not part of interface.
-# ifdef __hpux
-// HP-UX has a vaguely nice <stdint.h> in a non-standard location
-# include <inttypes.h>
-# ifdef __STDC_32_MODE__
- // this is triggered with GCC, because it defines __cplusplus < 199707L
-# define BOOST_NO_INT64_T
-# endif
-# elif defined(__FreeBSD__) || defined(__IBMCPP__)
-# include <inttypes.h>
-# else
-# include <stdint.h>
-
-// There is a bug in Cygwin two _C macros
-# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
-# undef INTMAX_C
-# undef UINTMAX_C
-# define INTMAX_C(c) c##LL
-# define UINTMAX_C(c) c##ULL
-# endif
-
-# endif
-
-#ifdef __QNX__
-
-// QNX (Dinkumware stdlib) defines these as non-standard names.
-// Reflect to the standard names.
-
-typedef ::intleast8_t int_least8_t;
-typedef ::intfast8_t int_fast8_t;
-typedef ::uintleast8_t uint_least8_t;
-typedef ::uintfast8_t uint_fast8_t;
-
-typedef ::intleast16_t int_least16_t;
-typedef ::intfast16_t int_fast16_t;
-typedef ::uintleast16_t uint_least16_t;
-typedef ::uintfast16_t uint_fast16_t;
-
-typedef ::intleast32_t int_least32_t;
-typedef ::intfast32_t int_fast32_t;
-typedef ::uintleast32_t uint_least32_t;
-typedef ::uintfast32_t uint_fast32_t;
-
-# ifndef BOOST_NO_INT64_T
-
-typedef ::intleast64_t int_least64_t;
-typedef ::intfast64_t int_fast64_t;
-typedef ::uintleast64_t uint_least64_t;
-typedef ::uintfast64_t uint_fast64_t;
-
-# endif
-
-#endif
-
-namespace boost
-{
-
- using ::int8_t;
- using ::int_least8_t;
- using ::int_fast8_t;
- using ::uint8_t;
- using ::uint_least8_t;
- using ::uint_fast8_t;
-
- using ::int16_t;
- using ::int_least16_t;
- using ::int_fast16_t;
- using ::uint16_t;
- using ::uint_least16_t;
- using ::uint_fast16_t;
-
- using ::int32_t;
- using ::int_least32_t;
- using ::int_fast32_t;
- using ::uint32_t;
- using ::uint_least32_t;
- using ::uint_fast32_t;
-
-# ifndef BOOST_NO_INT64_T
-
- using ::int64_t;
- using ::int_least64_t;
- using ::int_fast64_t;
- using ::uint64_t;
- using ::uint_least64_t;
- using ::uint_fast64_t;
-
-# endif
-
- using ::intmax_t;
- using ::uintmax_t;
-
-} // namespace boost
-
-#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__)
-// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
-# include <inttypes.h>
-
-namespace boost {
-
- using ::int8_t;
- typedef int8_t int_least8_t;
- typedef int8_t int_fast8_t;
- using ::uint8_t;
- typedef uint8_t uint_least8_t;
- typedef uint8_t uint_fast8_t;
-
- using ::int16_t;
- typedef int16_t int_least16_t;
- typedef int16_t int_fast16_t;
- using ::uint16_t;
- typedef uint16_t uint_least16_t;
- typedef uint16_t uint_fast16_t;
-
- using ::int32_t;
- typedef int32_t int_least32_t;
- typedef int32_t int_fast32_t;
- using ::uint32_t;
- typedef uint32_t uint_least32_t;
- typedef uint32_t uint_fast32_t;
-
-# ifndef BOOST_NO_INT64_T
-
- using ::int64_t;
- typedef int64_t int_least64_t;
- typedef int64_t int_fast64_t;
- using ::uint64_t;
- typedef uint64_t uint_least64_t;
- typedef uint64_t uint_fast64_t;
-
- typedef int64_t intmax_t;
- typedef uint64_t uintmax_t;
-
-# else
-
- typedef int32_t intmax_t;
- typedef uint32_t uintmax_t;
-
-# endif
-
-} // namespace boost
-
-#else // BOOST_HAS_STDINT_H
-
-# include <boost/limits.hpp> // implementation artifact; not part of interface
-
-
-namespace boost
-{
-
-// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
-// platforms. For other systems, they will have to be hand tailored.
-//
-// Because the fast types are assumed to be the same as the undecorated types,
-// it may be possible to hand tailor a more efficient implementation. Such
-// an optimization may be illusionary; on the Intel x86-family 386 on, for
-// example, byte arithmetic and load/stores are as fast as "int" sized ones.
-
-// 8-bit types ------------------------------------------------------------//
-
-# if UCHAR_MAX == 0xff
- typedef signed char int8_t;
- typedef signed char int_least8_t;
- typedef signed char int_fast8_t;
- typedef unsigned char uint8_t;
- typedef unsigned char uint_least8_t;
- typedef unsigned char uint_fast8_t;
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
-// 16-bit types -----------------------------------------------------------//
-
-# if USHRT_MAX == 0xffff
-# if defined(__crayx1)
- // The Cray X1 has a 16-bit short, however it is not recommend
- // for use in performance critical code.
- typedef short int16_t;
- typedef short int_least16_t;
- typedef int int_fast16_t;
- typedef unsigned short uint16_t;
- typedef unsigned short uint_least16_t;
- typedef unsigned int uint_fast16_t;
-# else
- typedef short int16_t;
- typedef short int_least16_t;
- typedef short int_fast16_t;
- typedef unsigned short uint16_t;
- typedef unsigned short uint_least16_t;
- typedef unsigned short uint_fast16_t;
-# endif
-# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
- // no 16-bit types on Cray:
- typedef short int_least16_t;
- typedef short int_fast16_t;
- typedef unsigned short uint_least16_t;
- typedef unsigned short uint_fast16_t;
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
-// 32-bit types -----------------------------------------------------------//
-
-# if ULONG_MAX == 0xffffffff
- typedef long int32_t;
- typedef long int_least32_t;
- typedef long int_fast32_t;
- typedef unsigned long uint32_t;
- typedef unsigned long uint_least32_t;
- typedef unsigned long uint_fast32_t;
-# elif UINT_MAX == 0xffffffff
- typedef int int32_t;
- typedef int int_least32_t;
- typedef int int_fast32_t;
- typedef unsigned int uint32_t;
- typedef unsigned int uint_least32_t;
- typedef unsigned int uint_fast32_t;
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
-// 64-bit types + intmax_t and uintmax_t ----------------------------------//
-
-# if defined(BOOST_HAS_LONG_LONG) && \
- !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
- (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
- (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-# if defined(__hpux)
- // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
-# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
- // 2**64 - 1
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
- typedef ::boost::long_long_type intmax_t;
- typedef ::boost::ulong_long_type uintmax_t;
- typedef ::boost::long_long_type int64_t;
- typedef ::boost::long_long_type int_least64_t;
- typedef ::boost::long_long_type int_fast64_t;
- typedef ::boost::ulong_long_type uint64_t;
- typedef ::boost::ulong_long_type uint_least64_t;
- typedef ::boost::ulong_long_type uint_fast64_t;
-
-# elif ULONG_MAX != 0xffffffff
-
-# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
- typedef long intmax_t;
- typedef unsigned long uintmax_t;
- typedef long int64_t;
- typedef long int_least64_t;
- typedef long int_fast64_t;
- typedef unsigned long uint64_t;
- typedef unsigned long uint_least64_t;
- typedef unsigned long uint_fast64_t;
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
- __extension__ typedef long long intmax_t;
- __extension__ typedef unsigned long long uintmax_t;
- __extension__ typedef long long int64_t;
- __extension__ typedef long long int_least64_t;
- __extension__ typedef long long int_fast64_t;
- __extension__ typedef unsigned long long uint64_t;
- __extension__ typedef unsigned long long uint_least64_t;
- __extension__ typedef unsigned long long uint_fast64_t;
-# elif defined(BOOST_HAS_MS_INT64)
- //
- // we have Borland/Intel/Microsoft __int64:
- //
- typedef __int64 intmax_t;
- typedef unsigned __int64 uintmax_t;
- typedef __int64 int64_t;
- typedef __int64 int_least64_t;
- typedef __int64 int_fast64_t;
- typedef unsigned __int64 uint64_t;
- typedef unsigned __int64 uint_least64_t;
- typedef unsigned __int64 uint_fast64_t;
-# else // assume no 64-bit integers
-# define BOOST_NO_INT64_T
- typedef int32_t intmax_t;
- typedef uint32_t uintmax_t;
-# endif
-
-} // namespace boost
-
-
-#endif // BOOST_HAS_STDINT_H
-
-#endif // BOOST_CSTDINT_HPP
-
-
-/****************************************************
-
-Macro definition section:
-
-Define various INTXX_C macros only if
-__STDC_CONSTANT_MACROS is defined.
-
-Undefine the macros if __STDC_CONSTANT_MACROS is
-not defined and the macros are (cf <cassert>).
-
-Added 23rd September 2000 (John Maddock).
-Modified 11th September 2001 to be excluded when
-BOOST_HAS_STDINT_H is defined (John Maddock).
-
-******************************************************/
-
-#if defined(__STDC_CONSTANT_MACROS) && !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(BOOST_HAS_STDINT_H)
-# define BOOST__STDC_CONSTANT_MACROS_DEFINED
-# if defined(BOOST_HAS_MS_INT64)
-//
-// Borland/Intel/Microsoft compilers have width specific suffixes:
-//
-# define INT8_C(value) value##i8
-# define INT16_C(value) value##i16
-# define INT32_C(value) value##i32
-# define INT64_C(value) value##i64
-# ifdef __BORLANDC__
- // Borland bug: appending ui8 makes the type a signed char
-# define UINT8_C(value) static_cast<unsigned char>(value##u)
-# else
-# define UINT8_C(value) value##ui8
-# endif
-# define UINT16_C(value) value##ui16
-# define UINT32_C(value) value##ui32
-# define UINT64_C(value) value##ui64
-# define INTMAX_C(value) value##i64
-# define UINTMAX_C(value) value##ui64
-
-# else
-// do it the old fashioned way:
-
-// 8-bit types ------------------------------------------------------------//
-
-# if UCHAR_MAX == 0xff
-# define INT8_C(value) static_cast<boost::int8_t>(value)
-# define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
-# endif
-
-// 16-bit types -----------------------------------------------------------//
-
-# if USHRT_MAX == 0xffff
-# define INT16_C(value) static_cast<boost::int16_t>(value)
-# define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
-# endif
-
-// 32-bit types -----------------------------------------------------------//
-
-# if UINT_MAX == 0xffffffff
-# define INT32_C(value) value
-# define UINT32_C(value) value##u
-# elif ULONG_MAX == 0xffffffff
-# define INT32_C(value) value##L
-# define UINT32_C(value) value##uL
-# endif
-
-// 64-bit types + intmax_t and uintmax_t ----------------------------------//
-
-# if defined(BOOST_HAS_LONG_LONG) && \
- (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-
-# if defined(__hpux)
- // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
-# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615U) || \
- (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615U) || \
- (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615U)
-
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-# define INT64_C(value) value##LL
-# define UINT64_C(value) value##uLL
-# elif ULONG_MAX != 0xffffffff
-
-# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
-# define INT64_C(value) value##L
-# define UINT64_C(value) value##uL
-# else
-# error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-# endif
-
-# ifdef BOOST_NO_INT64_T
-# define INTMAX_C(value) INT32_C(value)
-# define UINTMAX_C(value) UINT32_C(value)
-# else
-# define INTMAX_C(value) INT64_C(value)
-# define UINTMAX_C(value) UINT64_C(value)
-# endif
-
-# endif // Borland/Microsoft specific width suffixes
-
-
-#elif defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(__STDC_CONSTANT_MACROS) && !defined(BOOST_HAS_STDINT_H)
-//
-// undef all the macros:
-//
-# undef INT8_C
-# undef INT16_C
-# undef INT32_C
-# undef INT64_C
-# undef UINT8_C
-# undef UINT16_C
-# undef UINT32_C
-# undef UINT64_C
-# undef INTMAX_C
-# undef UINTMAX_C
-
-#endif // __STDC_CONSTANT_MACROS_DEFINED etc.
-
-
-
-
+++ /dev/null
-// boost/cstdlib.hpp header ------------------------------------------------//
-
-// Copyright Beman Dawes 2001. Distributed under the 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/utility/cstdlib.html for documentation.
-
-// Revision History
-// 26 Feb 01 Initial version (Beman Dawes)
-
-#ifndef BOOST_CSTDLIB_HPP
-#define BOOST_CSTDLIB_HPP
-
-#include <cstdlib>
-
-namespace boost
-{
- // The intent is to propose the following for addition to namespace std
- // in the C++ Standard Library, and to then deprecate EXIT_SUCCESS and
- // EXIT_FAILURE. As an implementation detail, this header defines the
- // new constants in terms of EXIT_SUCCESS and EXIT_FAILURE. In a new
- // standard, the constants would be implementation-defined, although it
- // might be worthwhile to "suggest" (which a standard is allowed to do)
- // values of 0 and 1 respectively.
-
- // Rationale for having multiple failure values: some environments may
- // wish to distinguish between different classes of errors.
- // Rationale for choice of values: programs often use values < 100 for
- // their own error reporting. Values > 255 are sometimes reserved for
- // system detected errors. 200/201 were suggested to minimize conflict.
-
- const int exit_success = EXIT_SUCCESS; // implementation-defined value
- const int exit_failure = EXIT_FAILURE; // implementation-defined value
- const int exit_exception_failure = 200; // otherwise uncaught exception
- const int exit_test_failure = 201; // report_error or
- // report_critical_error called.
-}
-
-#endif
-
+++ /dev/null
-#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
-#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/current_function.hpp - BOOST_CURRENT_FUNCTION
-//
-// 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)
-//
-// http://www.boost.org/libs/utility/current_function.html
-//
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void current_function_helper()
-{
-
-#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600))
-
-# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
-
-#elif defined(__FUNCSIG__)
-
-# define BOOST_CURRENT_FUNCTION __FUNCSIG__
-
-#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
-
-# define BOOST_CURRENT_FUNCTION __FUNCTION__
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
-
-# define BOOST_CURRENT_FUNCTION __FUNC__
-
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-
-# define BOOST_CURRENT_FUNCTION __func__
-
-#else
-
-# define BOOST_CURRENT_FUNCTION "(unknown)"
-
-#endif
-
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001. Permission to copy, use, modify,
-// sell and distribute this software is granted provided this
-// copyright notice appears in all copies. This software is provided
-// "as is" without express or implied warranty, and with no claim as
-// to its suitability for any purpose.
-
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Hewlett-Packard Company makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- *
- * Copyright (c) 1996
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- */
-
-#ifndef BOOST_ALGORITHM_HPP
-# define BOOST_ALGORITHM_HPP
-# include <boost/detail/iterator.hpp>
-// Algorithms on sequences
-//
-// The functions in this file have not yet gone through formal
-// review, and are subject to change. This is a work in progress.
-// They have been checked into the detail directory because
-// there are some graph algorithms that use these functions.
-
-#include <algorithm>
-#include <vector>
-
-namespace boost {
-
- template <typename Iter1, typename Iter2>
- Iter1 begin(const std::pair<Iter1, Iter2>& p) { return p.first; }
-
- template <typename Iter1, typename Iter2>
- Iter2 end(const std::pair<Iter1, Iter2>& p) { return p.second; }
-
- template <typename Iter1, typename Iter2>
- typename boost::detail::iterator_traits<Iter1>::difference_type
- size(const std::pair<Iter1, Iter2>& p) {
- return std::distance(p.first, p.second);
- }
-
-#if 0
- // These seem to interfere with the std::pair overloads :(
- template <typename Container>
- typename Container::iterator
- begin(Container& c) { return c.begin(); }
-
- template <typename Container>
- typename Container::const_iterator
- begin(const Container& c) { return c.begin(); }
-
- template <typename Container>
- typename Container::iterator
- end(Container& c) { return c.end(); }
-
- template <typename Container>
- typename Container::const_iterator
- end(const Container& c) { return c.end(); }
-
- template <typename Container>
- typename Container::size_type
- size(const Container& c) { return c.size(); }
-#else
- template <typename T>
- typename std::vector<T>::iterator
- begin(std::vector<T>& c) { return c.begin(); }
-
- template <typename T>
- typename std::vector<T>::const_iterator
- begin(const std::vector<T>& c) { return c.begin(); }
-
- template <typename T>
- typename std::vector<T>::iterator
- end(std::vector<T>& c) { return c.end(); }
-
- template <typename T>
- typename std::vector<T>::const_iterator
- end(const std::vector<T>& c) { return c.end(); }
-
- template <typename T>
- typename std::vector<T>::size_type
- size(const std::vector<T>& c) { return c.size(); }
-#endif
-
- template <class ForwardIterator, class T>
- void iota(ForwardIterator first, ForwardIterator last, T value)
- {
- for (; first != last; ++first, ++value)
- *first = value;
- }
- template <typename Container, typename T>
- void iota(Container& c, const T& value)
- {
- iota(begin(c), end(c), value);
- }
-
- // Also do version with 2nd container?
- template <typename Container, typename OutIter>
- OutIter copy(const Container& c, OutIter result) {
- return std::copy(begin(c), end(c), result);
- }
-
- template <typename Container1, typename Container2>
- bool equal(const Container1& c1, const Container2& c2)
- {
- if (size(c1) != size(c2))
- return false;
- return std::equal(begin(c1), end(c1), begin(c2));
- }
-
- template <typename Container>
- void sort(Container& c) { std::sort(begin(c), end(c)); }
-
- template <typename Container, typename Predicate>
- void sort(Container& c, const Predicate& p) {
- std::sort(begin(c), end(c), p);
- }
-
- template <typename Container>
- void stable_sort(Container& c) { std::stable_sort(begin(c), end(c)); }
-
- template <typename Container, typename Predicate>
- void stable_sort(Container& c, const Predicate& p) {
- std::stable_sort(begin(c), end(c), p);
- }
-
- template <typename InputIterator, typename Predicate>
- bool any_if(InputIterator first, InputIterator last, Predicate p)
- {
- return std::find_if(first, last, p) != last;
- }
- template <typename Container, typename Predicate>
- bool any_if(const Container& c, Predicate p)
- {
- return any_if(begin(c), end(c), p);
- }
-
- template <typename InputIterator, typename T>
- bool contains(InputIterator first, InputIterator last, T value)
- {
- return std::find(first, last, value) != last;
- }
- template <typename Container, typename T>
- bool contains(const Container& c, const T& value)
- {
- return contains(begin(c), end(c), value);
- }
-
- template <typename InputIterator, typename Predicate>
- bool all(InputIterator first, InputIterator last, Predicate p)
- {
- for (; first != last; ++first)
- if (!p(*first))
- return false;
- return true;
- }
- template <typename Container, typename Predicate>
- bool all(const Container& c, Predicate p)
- {
- return all(begin(c), end(c), p);
- }
-
- template <typename InputIterator, typename Predicate>
- bool none(InputIterator first, InputIterator last, Predicate p)
- {
- return std::find_if(first, last, p) == last;
- }
- template <typename Container, typename Predicate>
- bool none(const Container& c, Predicate p)
- {
- return none(begin(c), end(c), p);
- }
-
- template <typename Container, typename T>
- std::size_t count(const Container& c, const T& value)
- {
- return std::count(begin(c), end(c), value);
- }
-
- template <typename Container, typename Predicate>
- std::size_t count_if(const Container& c, Predicate p)
- {
- return std::count_if(begin(c), end(c), p);
- }
-
- template <typename ForwardIterator>
- bool is_sorted(ForwardIterator first, ForwardIterator last)
- {
- if (first == last)
- return true;
-
- ForwardIterator next = first;
- for (++next; next != last; first = next, ++next) {
- if (*next < *first)
- return false;
- }
-
- return true;
- }
-
- template <typename ForwardIterator, typename StrictWeakOrdering>
- bool is_sorted(ForwardIterator first, ForwardIterator last,
- StrictWeakOrdering comp)
- {
- if (first == last)
- return true;
-
- ForwardIterator next = first;
- for (++next; next != last; first = next, ++next) {
- if (comp(*next, *first))
- return false;
- }
-
- return true;
- }
-
- template <typename Container>
- bool is_sorted(const Container& c)
- {
- return is_sorted(begin(c), end(c));
- }
-
- template <typename Container, typename StrictWeakOrdering>
- bool is_sorted(const Container& c, StrictWeakOrdering comp)
- {
- return is_sorted(begin(c), end(c), comp);
- }
-
-} // namespace boost
-
-#endif // BOOST_ALGORITHM_HPP
+++ /dev/null
-/* Copyright 2003-2005 JoaquÃn M López Muñoz.
- * Distributed under the 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 Boost website at http://www.boost.org/
- */
-
-#ifndef BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP
-#define BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP
-
-#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
-#include <boost/detail/workaround.hpp>
-#include <boost/mpl/aux_/msvc_never_true.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <cstddef>
-#include <memory>
-#include <new>
-
-namespace boost{
-
-namespace detail{
-
-/* Allocator adaption layer. Some stdlibs provide allocators without rebind
- * and template ctors. These facilities are simulated with the external
- * template class rebind_to and the aid of partial_std_allocator_wrapper.
- */
-
-namespace allocator{
-
-/* partial_std_allocator_wrapper inherits the functionality of a std
- * allocator while providing a templatized ctor.
- */
-
-template<typename Type>
-class partial_std_allocator_wrapper:public std::allocator<Type>
-{
-public:
- partial_std_allocator_wrapper(){};
-
- template<typename Other>
- partial_std_allocator_wrapper(const partial_std_allocator_wrapper<Other>&){}
-
- partial_std_allocator_wrapper(const std::allocator<Type>& x):
- std::allocator<Type>(x)
- {
- };
-
-#if defined(BOOST_DINKUMWARE_STDLIB)
- /* Dinkumware guys didn't provide a means to call allocate() without
- * supplying a hint, in disagreement with the standard.
- */
-
- Type* allocate(std::size_t n,const void* hint=0)
- {
- std::allocator<Type>& a=*this;
- return a.allocate(n,hint);
- }
-#endif
-
-};
-
-/* Detects whether a given allocator belongs to a defective stdlib not
- * having the required member templates.
- * Note that it does not suffice to check the Boost.Config stdlib
- * macros, as the user might have passed a custom, compliant allocator.
- * The checks also considers partial_std_allocator_wrapper to be
- * a standard defective allocator.
- */
-
-#if defined(BOOST_NO_STD_ALLOCATOR)&&\
- (defined(BOOST_HAS_PARTIAL_STD_ALLOCATOR)||defined(BOOST_DINKUMWARE_STDLIB))
-
-template<typename Allocator>
-struct is_partial_std_allocator
-{
- BOOST_STATIC_CONSTANT(bool,
- value=
- (is_same<
- std::allocator<BOOST_DEDUCED_TYPENAME Allocator::value_type>,
- Allocator
- >::value)||
- (is_same<
- partial_std_allocator_wrapper<
- BOOST_DEDUCED_TYPENAME Allocator::value_type>,
- Allocator
- >::value));
-};
-
-#else
-
-template<typename Allocator>
-struct is_partial_std_allocator
-{
- BOOST_STATIC_CONSTANT(bool,value=false);
-};
-
-#endif
-
-/* rebind operations for defective std allocators */
-
-template<typename Allocator,typename Type>
-struct partial_std_allocator_rebind_to
-{
- typedef partial_std_allocator_wrapper<Type> type;
-};
-
-/* rebind operation in all other cases */
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<1300)
-/* Workaround for a problem in MSVC with dependent template typedefs
- * when doing rebinding of allocators.
- * Modeled after <boost/mpl/aux_/msvc_dtw.hpp> (thanks, Aleksey!)
- */
-
-template<typename Allocator>
-struct rebinder
-{
- template<bool> struct fake_allocator:Allocator{};
- template<> struct fake_allocator<true>
- {
- template<typename Type> struct rebind{};
- };
-
- template<typename Type>
- struct result:
- fake_allocator<mpl::aux::msvc_never_true<Allocator>::value>::
- template rebind<Type>
- {
- };
-};
-#else
-template<typename Allocator>
-struct rebinder
-{
- template<typename Type>
- struct result
- {
- typedef typename Allocator::BOOST_NESTED_TEMPLATE
- rebind<Type>::other other;
- };
-};
-#endif
-
-template<typename Allocator,typename Type>
-struct compliant_allocator_rebind_to
-{
- typedef typename rebinder<Allocator>::
- BOOST_NESTED_TEMPLATE result<Type>::other type;
-};
-
-/* rebind front-end */
-
-template<typename Allocator,typename Type>
-struct rebind_to:
- mpl::eval_if_c<
- is_partial_std_allocator<Allocator>::value,
- partial_std_allocator_rebind_to<Allocator,Type>,
- compliant_allocator_rebind_to<Allocator,Type>
- >
-{
-};
-
-/* allocator-independent versions of construct and destroy */
-
-template<typename Type>
-void construct(void* p,const Type& t)
-{
- new (p) Type(t);
-}
-
-template<typename Type>
-void destroy(const Type* p)
-{
- p->~Type();
-}
-
-} /* namespace boost::detail::allocator */
-
-} /* namespace boost::detail */
-
-} /* namespace boost */
-
-#endif
+++ /dev/null
-#ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-#define BOOST_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: nothing
-//
-// --a;
-//
-// Effects: Atomically decrements the value of a
-// Returns: (long) zero if the new value of a is zero,
-// unspecified non-zero value otherwise (usually the new value)
-//
-// 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>
-
-#ifndef BOOST_HAS_THREADS
-
-namespace boost
-{
-
-namespace detail
-{
-
-typedef long atomic_count;
-
-}
-
-}
-
-#elif defined(BOOST_AC_USE_PTHREADS)
-# include <boost/detail/atomic_count_pthreads.hpp>
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
-# include <boost/detail/atomic_count_win32.hpp>
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-# include <boost/detail/atomic_count_gcc.hpp>
-#elif defined(BOOST_HAS_PTHREADS)
-# define BOOST_AC_USE_PTHREADS
-# include <boost/detail/atomic_count_pthreads.hpp>
-#else
-
-// Use #define BOOST_DISABLE_THREADS to avoid the error
-#error Unrecognized threading platform
-
-#endif
-
-#endif // #ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
-#define BOOST_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)
-//
-
-#include <bits/atomicity.h>
-
-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) {}
-
- void operator++()
- {
- __atomic_add(&value_, 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_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
-#define BOOST_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_);
- }
-
- void operator++()
- {
- scoped_lock lock(mutex_);
- ++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_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
-#define BOOST_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_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_BAD_WEAK_PTR_HPP_INCLUDED
-#define BOOST_BAD_WEAK_PTR_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// detail/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 "boost::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_BAD_WEAK_PTR_HPP_INCLUDED
+++ /dev/null
-// Copyright (c) 2000 David Abrahams.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Copyright (c) 1994
-// Hewlett-Packard Company
-//
-// Permission to use, copy, modify, distribute and sell this software
-// and its documentation for any purpose is hereby granted without fee,
-// provided that the above copyright notice appear in all copies and
-// that both that copyright notice and this permission notice appear
-// in supporting documentation. Hewlett-Packard Company makes no
-// representations about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-//
-// Copyright (c) 1996
-// Silicon Graphics Computer Systems, Inc.
-//
-// Permission to use, copy, modify, distribute and sell this software
-// and its documentation for any purpose is hereby granted without fee,
-// provided that the above copyright notice appear in all copies and
-// that both that copyright notice and this permission notice appear
-// in supporting documentation. Silicon Graphics makes no
-// representations about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-//
-#ifndef BINARY_SEARCH_DWA_122600_H_
-# define BINARY_SEARCH_DWA_122600_H_
-
-# include <boost/detail/iterator.hpp>
-# include <utility>
-
-namespace boost { namespace detail {
-
-template <class ForwardIter, class Tp>
-ForwardIter lower_bound(ForwardIter first, ForwardIter last,
- const Tp& val)
-{
- typedef detail::iterator_traits<ForwardIter> traits;
-
- typename traits::difference_type len = boost::detail::distance(first, last);
- typename traits::difference_type half;
- ForwardIter middle;
-
- while (len > 0) {
- half = len >> 1;
- middle = first;
- std::advance(middle, half);
- if (*middle < val) {
- first = middle;
- ++first;
- len = len - half - 1;
- }
- else
- len = half;
- }
- return first;
-}
-
-template <class ForwardIter, class Tp, class Compare>
-ForwardIter lower_bound(ForwardIter first, ForwardIter last,
- const Tp& val, Compare comp)
-{
- typedef detail::iterator_traits<ForwardIter> traits;
-
- typename traits::difference_type len = boost::detail::distance(first, last);
- typename traits::difference_type half;
- ForwardIter middle;
-
- while (len > 0) {
- half = len >> 1;
- middle = first;
- std::advance(middle, half);
- if (comp(*middle, val)) {
- first = middle;
- ++first;
- len = len - half - 1;
- }
- else
- len = half;
- }
- return first;
-}
-
-template <class ForwardIter, class Tp>
-ForwardIter upper_bound(ForwardIter first, ForwardIter last,
- const Tp& val)
-{
- typedef detail::iterator_traits<ForwardIter> traits;
-
- typename traits::difference_type len = boost::detail::distance(first, last);
- typename traits::difference_type half;
- ForwardIter middle;
-
- while (len > 0) {
- half = len >> 1;
- middle = first;
- std::advance(middle, half);
- if (val < *middle)
- len = half;
- else {
- first = middle;
- ++first;
- len = len - half - 1;
- }
- }
- return first;
-}
-
-template <class ForwardIter, class Tp, class Compare>
-ForwardIter upper_bound(ForwardIter first, ForwardIter last,
- const Tp& val, Compare comp)
-{
- typedef detail::iterator_traits<ForwardIter> traits;
-
- typename traits::difference_type len = boost::detail::distance(first, last);
- typename traits::difference_type half;
- ForwardIter middle;
-
- while (len > 0) {
- half = len >> 1;
- middle = first;
- std::advance(middle, half);
- if (comp(val, *middle))
- len = half;
- else {
- first = middle;
- ++first;
- len = len - half - 1;
- }
- }
- return first;
-}
-
-template <class ForwardIter, class Tp>
-std::pair<ForwardIter, ForwardIter>
-equal_range(ForwardIter first, ForwardIter last, const Tp& val)
-{
- typedef detail::iterator_traits<ForwardIter> traits;
-
- typename traits::difference_type len = boost::detail::distance(first, last);
- typename traits::difference_type half;
- ForwardIter middle, left, right;
-
- while (len > 0) {
- half = len >> 1;
- middle = first;
- std::advance(middle, half);
- if (*middle < val) {
- first = middle;
- ++first;
- len = len - half - 1;
- }
- else if (val < *middle)
- len = half;
- else {
- left = boost::detail::lower_bound(first, middle, val);
- std::advance(first, len);
- right = boost::detail::upper_bound(++middle, first, val);
- return std::pair<ForwardIter, ForwardIter>(left, right);
- }
- }
- return std::pair<ForwardIter, ForwardIter>(first, first);
-}
-
-template <class ForwardIter, class Tp, class Compare>
-std::pair<ForwardIter, ForwardIter>
-equal_range(ForwardIter first, ForwardIter last, const Tp& val,
- Compare comp)
-{
- typedef detail::iterator_traits<ForwardIter> traits;
-
- typename traits::difference_type len = boost::detail::distance(first, last);
- typename traits::difference_type half;
- ForwardIter middle, left, right;
-
- while (len > 0) {
- half = len >> 1;
- middle = first;
- std::advance(middle, half);
- if (comp(*middle, val)) {
- first = middle;
- ++first;
- len = len - half - 1;
- }
- else if (comp(val, *middle))
- len = half;
- else {
- left = boost::detail::lower_bound(first, middle, val, comp);
- std::advance(first, len);
- right = boost::detail::upper_bound(++middle, first, val, comp);
- return std::pair<ForwardIter, ForwardIter>(left, right);
- }
- }
- return std::pair<ForwardIter, ForwardIter>(first, first);
-}
-
-template <class ForwardIter, class Tp>
-bool binary_search(ForwardIter first, ForwardIter last,
- const Tp& val) {
- ForwardIter i = boost::detail::lower_bound(first, last, val);
- return i != last && !(val < *i);
-}
-
-template <class ForwardIter, class Tp, class Compare>
-bool binary_search(ForwardIter first, ForwardIter last,
- const Tp& val,
- Compare comp) {
- ForwardIter i = boost::detail::lower_bound(first, last, val, comp);
- return i != last && !comp(val, *i);
-}
-
-}} // namespace boost::detail
-
-#endif // BINARY_SEARCH_DWA_122600_H_
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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/utility for most recent version including documentation.
-
-// call_traits: defines typedefs for function usage
-// (see libs/utility/call_traits.htm)
-
-/* Release notes:
- 23rd July 2000:
- Fixed array specialization. (JM)
- Added Borland specific fixes for reference types
- (issue raised by Steve Cleary).
-*/
-
-#ifndef BOOST_DETAIL_CALL_TRAITS_HPP
-#define BOOST_DETAIL_CALL_TRAITS_HPP
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-#include <cstddef>
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost{
-
-namespace detail{
-
-template <typename T, bool small_>
-struct ct_imp2
-{
- typedef const T& param_type;
-};
-
-template <typename T>
-struct ct_imp2<T, true>
-{
- typedef const T param_type;
-};
-
-template <typename T, bool isp, bool b1>
-struct ct_imp
-{
- typedef const T& param_type;
-};
-
-template <typename T, bool isp>
-struct ct_imp<T, isp, true>
-{
- typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
-};
-
-template <typename T, bool b1>
-struct ct_imp<T, true, b1>
-{
- typedef T const param_type;
-};
-
-}
-
-template <typename T>
-struct call_traits
-{
-public:
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- //
- // C++ Builder workaround: we should be able to define a compile time
- // constant and pass that as a single template parameter to ct_imp<T,bool>,
- // however compiler bugs prevent this - instead pass three bool's to
- // ct_imp<T,bool,bool,bool> and add an extra partial specialisation
- // of ct_imp to handle the logic. (JM)
- typedef typename detail::ct_imp<
- T,
- ::boost::is_pointer<T>::value,
- ::boost::is_arithmetic<T>::value
- >::param_type param_type;
-};
-
-template <typename T>
-struct call_traits<T&>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-
-#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x570 ) )
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-template <typename T>
-struct call_traits<T&const>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-template <typename T>
-struct call_traits<T&volatile>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-template <typename T>
-struct call_traits<T&const volatile>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-#endif
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <typename T, std::size_t N>
-struct call_traits<T [N]>
-{
-private:
- typedef T array_type[N];
-public:
- // degrades array to pointer:
- typedef const T* value_type;
- typedef array_type& reference;
- typedef const array_type& const_reference;
- typedef const T* const param_type;
-};
-
-template <typename T, std::size_t N>
-struct call_traits<const T [N]>
-{
-private:
- typedef const T array_type[N];
-public:
- // degrades array to pointer:
- typedef const T* value_type;
- typedef array_type& reference;
- typedef const array_type& const_reference;
- typedef const T* const param_type;
-};
-#endif
-
-}
-
-#endif // BOOST_DETAIL_CALL_TRAITS_HPP
+++ /dev/null
-// boost/catch_exceptions.hpp -----------------------------------------------//
-
-// Copyright Beman Dawes 1995-2001. Distributed under the 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/test for documentation.
-
-// Revision History
-// 13 Jun 01 report_exception() made inline. (John Maddock, Jesse Jones)
-// 26 Feb 01 Numerous changes suggested during formal review. (Beman)
-// 25 Jan 01 catch_exceptions.hpp code factored out of cpp_main.cpp.
-// 22 Jan 01 Remove test_tools dependencies to reduce coupling.
-// 5 Nov 00 Initial boost version (Beman Dawes)
-
-#ifndef BOOST_CATCH_EXCEPTIONS_HPP
-#define BOOST_CATCH_EXCEPTIONS_HPP
-
-// header dependencies are deliberately restricted to the standard library
-// to reduce coupling to other boost libraries.
-#include <string> // for string
-#include <new> // for bad_alloc
-#include <typeinfo> // for bad_cast, bad_typeid
-#include <exception> // for exception, bad_exception
-#include <stdexcept> // for std exception hierarchy
-#include <boost/cstdlib.hpp> // for exit codes
-# if __GNUC__ != 2 || __GNUC_MINOR__ > 96
-# include <ostream> // for ostream
-# else
-# include <iostream> // workaround GNU missing ostream header
-# endif
-
-# if defined(__BORLANDC__) && (__BORLANDC__ <= 0x0551)
-# define BOOST_BUILT_IN_EXCEPTIONS_MISSING_WHAT
-# endif
-
-#if defined(MPW_CPLUS) && (MPW_CPLUS <= 0x890)
-# define BOOST_BUILT_IN_EXCEPTIONS_MISSING_WHAT
- namespace std { class bad_typeid { }; }
-# endif
-
-namespace boost
-{
-
- namespace detail
- {
- // A separate reporting function was requested during formal review.
- inline void report_exception( std::ostream & os,
- const char * name, const char * info )
- { os << "\n** uncaught exception: " << name << " " << info << std::endl; }
- }
-
- // catch_exceptions ------------------------------------------------------//
-
- template< class Generator > // Generator is function object returning int
- int catch_exceptions( Generator function_object,
- std::ostream & out, std::ostream & err )
- {
- int result = 0; // quiet compiler warnings
- bool exception_thrown = true; // avoid setting result for each excptn type
-
-#ifndef BOOST_NO_EXCEPTIONS
- try
- {
-#endif
- result = function_object();
- exception_thrown = false;
-#ifndef BOOST_NO_EXCEPTIONS
- }
-
- // As a result of hard experience with strangely interleaved output
- // under some compilers, there is a lot of use of endl in the code below
- // where a simple '\n' might appear to do.
-
- // The rules for catch & arguments are a bit different from function
- // arguments (ISO 15.3 paragraphs 18 & 19). Apparently const isn't
- // required, but it doesn't hurt and some programmers ask for it.
-
- catch ( const char * ex )
- { detail::report_exception( out, "", ex ); }
- catch ( const std::string & ex )
- { detail::report_exception( out, "", ex.c_str() ); }
-
- // std:: exceptions
- catch ( const std::bad_alloc & ex )
- { detail::report_exception( out, "std::bad_alloc:", ex.what() ); }
-
-# ifndef BOOST_BUILT_IN_EXCEPTIONS_MISSING_WHAT
- catch ( const std::bad_cast & ex )
- { detail::report_exception( out, "std::bad_cast:", ex.what() ); }
- catch ( const std::bad_typeid & ex )
- { detail::report_exception( out, "std::bad_typeid:", ex.what() ); }
-# else
- catch ( const std::bad_cast & )
- { detail::report_exception( out, "std::bad_cast", "" ); }
- catch ( const std::bad_typeid & )
- { detail::report_exception( out, "std::bad_typeid", "" ); }
-# endif
-
- catch ( const std::bad_exception & ex )
- { detail::report_exception( out, "std::bad_exception:", ex.what() ); }
- catch ( const std::domain_error & ex )
- { detail::report_exception( out, "std::domain_error:", ex.what() ); }
- catch ( const std::invalid_argument & ex )
- { detail::report_exception( out, "std::invalid_argument:", ex.what() ); }
- catch ( const std::length_error & ex )
- { detail::report_exception( out, "std::length_error:", ex.what() ); }
- catch ( const std::out_of_range & ex )
- { detail::report_exception( out, "std::out_of_range:", ex.what() ); }
- catch ( const std::range_error & ex )
- { detail::report_exception( out, "std::range_error:", ex.what() ); }
- catch ( const std::overflow_error & ex )
- { detail::report_exception( out, "std::overflow_error:", ex.what() ); }
- catch ( const std::underflow_error & ex )
- { detail::report_exception( out, "std::underflow_error:", ex.what() ); }
- catch ( const std::logic_error & ex )
- { detail::report_exception( out, "std::logic_error:", ex.what() ); }
- catch ( const std::runtime_error & ex )
- { detail::report_exception( out, "std::runtime_error:", ex.what() ); }
- catch ( const std::exception & ex )
- { detail::report_exception( out, "std::exception:", ex.what() ); }
-
- catch ( ... )
- { detail::report_exception( out, "unknown exception", "" ); }
-#endif // BOOST_NO_EXCEPTIONS
-
- if ( exception_thrown ) result = boost::exit_exception_failure;
-
- if ( result != 0 && result != exit_success )
- {
- out << std::endl << "**** returning with error code "
- << result << std::endl;
- err
- << "********** errors detected; see stdout for details ***********"
- << std::endl;
- }
-#if !defined(BOOST_NO_CPP_MAIN_SUCCESS_MESSAGE)
- else { out << std::flush << "no errors detected" << std::endl; }
-#endif
- return result;
- } // catch_exceptions
-
-} // boost
-
-#endif // BOOST_CATCH_EXCEPTIONS_HPP
-
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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/utility for most recent version including documentation.
-
-// compressed_pair: pair that "compresses" empty members
-// (see libs/utility/compressed_pair.htm)
-//
-// JM changes 25 Jan 2004:
-// For the case where T1 == T2 and both are empty, then first() and second()
-// should return different objects.
-// JM changes 25 Jan 2000:
-// Removed default arguments from compressed_pair_switch to get
-// C++ Builder 4 to accept them
-// rewriten swap to get gcc and C++ builder to compile.
-// added partial specialisations for case T1 == T2 to avoid duplicate constructor defs.
-
-#ifndef BOOST_DETAIL_COMPRESSED_PAIR_HPP
-#define BOOST_DETAIL_COMPRESSED_PAIR_HPP
-
-#include <algorithm>
-
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_empty.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/call_traits.hpp>
-
-namespace boost
-{
-
-template <class T1, class T2>
-class compressed_pair;
-
-
-// compressed_pair
-
-namespace details
-{
- // JM altered 26 Jan 2000:
- template <class T1, class T2, bool IsSame, bool FirstEmpty, bool SecondEmpty>
- struct compressed_pair_switch;
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, false, false>
- {static const int value = 0;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, true, true>
- {static const int value = 3;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, true, false>
- {static const int value = 1;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, false, true>
- {static const int value = 2;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, true, true, true>
- {static const int value = 4;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, true, false, false>
- {static const int value = 5;};
-
- template <class T1, class T2, int Version> class compressed_pair_imp;
-
-#ifdef __GNUC__
- // workaround for GCC (JM):
- using std::swap;
-#endif
- //
- // can't call unqualified swap from within classname::swap
- // as Koenig lookup rules will find only the classname::swap
- // member function not the global declaration, so use cp_swap
- // as a forwarding function (JM):
- template <typename T>
- inline void cp_swap(T& t1, T& t2)
- {
-#ifndef __GNUC__
- using std::swap;
-#endif
- swap(t1, t2);
- }
-
- // 0 derive from neither
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 0>
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_(x), second_(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_(y) {}
-
- first_reference first() {return first_;}
- first_const_reference first() const {return first_;}
-
- second_reference second() {return second_;}
- second_const_reference second() const {return second_;}
-
- void swap(::boost::compressed_pair<T1, T2>& y)
- {
- cp_swap(first_, y.first());
- cp_swap(second_, y.second());
- }
- private:
- first_type first_;
- second_type second_;
- };
-
- // 1 derive from T1
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 1>
- : private ::boost::remove_cv<T1>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_type(x), second_(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_type(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_(y) {}
-
- first_reference first() {return *this;}
- first_const_reference first() const {return *this;}
-
- second_reference second() {return second_;}
- second_const_reference second() const {return second_;}
-
- void swap(::boost::compressed_pair<T1,T2>& y)
- {
- // no need to swap empty base class:
- cp_swap(second_, y.second());
- }
- private:
- second_type second_;
- };
-
- // 2 derive from T2
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 2>
- : private ::boost::remove_cv<T2>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : second_type(y), first_(x) {}
-
- compressed_pair_imp(first_param_type x)
- : first_(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_type(y) {}
-
- first_reference first() {return first_;}
- first_const_reference first() const {return first_;}
-
- second_reference second() {return *this;}
- second_const_reference second() const {return *this;}
-
- void swap(::boost::compressed_pair<T1,T2>& y)
- {
- // no need to swap empty base class:
- cp_swap(first_, y.first());
- }
-
- private:
- first_type first_;
- };
-
- // 3 derive from T1 and T2
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 3>
- : private ::boost::remove_cv<T1>::type,
- private ::boost::remove_cv<T2>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_type(x), second_type(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_type(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_type(y) {}
-
- first_reference first() {return *this;}
- first_const_reference first() const {return *this;}
-
- second_reference second() {return *this;}
- second_const_reference second() const {return *this;}
- //
- // no need to swap empty bases:
- void swap(::boost::compressed_pair<T1,T2>&) {}
- };
-
- // JM
- // 4 T1 == T2, T1 and T2 both empty
- // Note does not actually store an instance of T2 at all -
- // but reuses T1 base class for both first() and second().
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 4>
- : private ::boost::remove_cv<T1>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_type(x), m_second(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_type(x), m_second(x) {}
-
- first_reference first() {return *this;}
- first_const_reference first() const {return *this;}
-
- second_reference second() {return m_second;}
- second_const_reference second() const {return m_second;}
-
- void swap(::boost::compressed_pair<T1,T2>&) {}
- private:
- T2 m_second;
- };
-
- // 5 T1 == T2 and are not empty: //JM
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 5>
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_(x), second_(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_(x), second_(x) {}
-
- first_reference first() {return first_;}
- first_const_reference first() const {return first_;}
-
- second_reference second() {return second_;}
- second_const_reference second() const {return second_;}
-
- void swap(::boost::compressed_pair<T1, T2>& y)
- {
- cp_swap(first_, y.first());
- cp_swap(second_, y.second());
- }
- private:
- first_type first_;
- second_type second_;
- };
-
-} // details
-
-template <class T1, class T2>
-class compressed_pair
- : private ::boost::details::compressed_pair_imp<T1, T2,
- ::boost::details::compressed_pair_switch<
- T1,
- T2,
- ::boost::is_same<typename remove_cv<T1>::type, typename remove_cv<T2>::type>::value,
- ::boost::is_empty<T1>::value,
- ::boost::is_empty<T2>::value>::value>
-{
-private:
- typedef details::compressed_pair_imp<T1, T2,
- ::boost::details::compressed_pair_switch<
- T1,
- T2,
- ::boost::is_same<typename remove_cv<T1>::type, typename remove_cv<T2>::type>::value,
- ::boost::is_empty<T1>::value,
- ::boost::is_empty<T2>::value>::value> base;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair() : base() {}
- compressed_pair(first_param_type x, second_param_type y) : base(x, y) {}
- explicit compressed_pair(first_param_type x) : base(x) {}
- explicit compressed_pair(second_param_type y) : base(y) {}
-
- first_reference first() {return base::first();}
- first_const_reference first() const {return base::first();}
-
- second_reference second() {return base::second();}
- second_const_reference second() const {return base::second();}
-
- void swap(compressed_pair& y) { base::swap(y); }
-};
-
-// JM
-// Partial specialisation for case where T1 == T2:
-//
-template <class T>
-class compressed_pair<T, T>
- : private details::compressed_pair_imp<T, T,
- ::boost::details::compressed_pair_switch<
- T,
- T,
- ::boost::is_same<typename remove_cv<T>::type, typename remove_cv<T>::type>::value,
- ::boost::is_empty<T>::value,
- ::boost::is_empty<T>::value>::value>
-{
-private:
- typedef details::compressed_pair_imp<T, T,
- ::boost::details::compressed_pair_switch<
- T,
- T,
- ::boost::is_same<typename remove_cv<T>::type, typename remove_cv<T>::type>::value,
- ::boost::is_empty<T>::value,
- ::boost::is_empty<T>::value>::value> base;
-public:
- typedef T first_type;
- typedef T second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair() : base() {}
- compressed_pair(first_param_type x, second_param_type y) : base(x, y) {}
-#if !(defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530))
- explicit
-#endif
- compressed_pair(first_param_type x) : base(x) {}
-
- first_reference first() {return base::first();}
- first_const_reference first() const {return base::first();}
-
- second_reference second() {return base::second();}
- second_const_reference second() const {return base::second();}
-
- void swap(::boost::compressed_pair<T,T>& y) { base::swap(y); }
-};
-
-template <class T1, class T2>
-inline
-void
-swap(compressed_pair<T1, T2>& x, compressed_pair<T1, T2>& y)
-{
- x.swap(y);
-}
-
-} // boost
-
-#endif // BOOST_DETAIL_COMPRESSED_PAIR_HPP
-
+++ /dev/null
-// --------------------------------------------------
-//
-// (C) Copyright Chuck Allison and Jeremy Siek 2001 - 2002.
-// (C) Copyright Gennaro Prota 2003 - 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)
-//
-// -----------------------------------------------------------
-
-// See http://www.boost.org/libs/dynamic_bitset for documentation.
-
-
-#ifndef BOOST_DETAIL_DYNAMIC_BITSET_HPP
-#define BOOST_DETAIL_DYNAMIC_BITSET_HPP
-
-#include <cstddef> // for std::size_t
-#include "boost/config.hpp"
-#include "boost/detail/workaround.hpp"
-//#include "boost/static_assert.hpp" // gps
-
-
-namespace boost {
-
- namespace detail {
-
- // Gives (read-)access to the object representation
- // of an object of type T (3.9p4). CANNOT be used
- // on a base sub-object
- //
- template <typename T>
- inline const unsigned char * object_representation (T* p)
- {
- return static_cast<const unsigned char *>(static_cast<const void *>(p));
- }
-
-
- // ------- count function implementation --------------
-
- namespace dynamic_bitset_count_impl {
-
- typedef unsigned char byte_type;
-
- enum mode { access_by_bytes, access_by_blocks };
-
- template <mode> struct mode_to_type {};
-
- // the table: wrapped in a class template, so
- // that it is only instantiated if/when needed
- //
- template <bool dummy_name = true>
- struct count_table { static const byte_type table[]; };
-
- template <>
- struct count_table<false> { /* no table */ };
-
-
- const unsigned int table_width = 8;
- template <bool b>
- const byte_type count_table<b>::table[] =
- {
- // Automatically generated by GPTableGen.exe v.1.0
- //
- 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
- };
-
-
- // overload for access by bytes
- //
-
- template <typename Iterator>
- inline std::size_t do_count(Iterator first, std::size_t length,
- int /*dummy param*/,
- mode_to_type<access_by_bytes>* )
- {
- std::size_t num = 0;
- if (length)
- {
- const byte_type * p = object_representation(&*first);
- length *= sizeof(*first);
-
- do {
- num += count_table<>::table[*p];
- ++p;
- --length;
-
- } while (length);
- }
-
- return num;
- }
-
-
- // overload for access by blocks
- //
- template <typename Iterator, typename ValueType>
- inline std::size_t do_count(Iterator first, std::size_t length, ValueType,
- mode_to_type<access_by_blocks>*)
- {
- std::size_t num = 0;
- while (length){
-
- ValueType value = *first;
- while (value) {
- num += count_table<>::table[value & ((1u<<table_width) - 1)];
- value >>= table_width;
- }
-
- ++first;
- --length;
- }
-
- return num;
- }
-
-
- } // dynamic_bitset_count_impl
- // -------------------------------------------------------
-
-
- // Some library implementations simply return a dummy
- // value such as
- //
- // size_type(-1) / sizeof(T)
- //
- // from vector<>::max_size. This tries to get out more
- // meaningful info.
- //
- template <typename T>
- typename T::size_type vector_max_size_workaround(const T & v) {
-
- typedef typename T::allocator_type allocator_type;
-
- const typename allocator_type::size_type alloc_max =
- v.get_allocator().max_size();
- const typename T::size_type container_max = v.max_size();
-
- return alloc_max < container_max?
- alloc_max :
- container_max;
- }
-
- // for static_asserts
- template <typename T>
- struct dynamic_bitset_allowed_block_type {
- enum { value = T(-1) > 0 }; // ensure T has no sign
- };
-
- template <>
- struct dynamic_bitset_allowed_block_type<bool> {
- enum { value = false };
- };
-
-
- } // namespace detail
-
-} // namespace boost
-
-#endif // include guard
-
+++ /dev/null
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- */
-
-/*
- * Copyright notice reproduced from <boost/detail/limits.hpp>, from
- * which this code was originally taken.
- *
- * Modified by Caleb Epstein to use <endian.h> with GNU libc and to
- * defined the BOOST_ENDIAN macro.
- */
-
-#ifndef BOOST_DETAIL_ENDIAN_HPP
-#define BOOST_DETAIL_ENDIAN_HPP
-
-// GNU libc offers the helpful header <endian.h> which defines
-// __BYTE_ORDER
-
-#if defined (__GLIBC__)
-# include <endian.h>
-# if (__BYTE_ORDER == __LITTLE_ENDIAN)
-# define BOOST_LITTLE_ENDIAN
-# elif (__BYTE_ORDER == __BIG_ENDIAN)
-# define BOOST_BIG_ENDIAN
-# elif (__BYTE_ORDER == __PDP_ENDIAN)
-# define BOOST_PDP_ENDIAN
-# else
-# error Unknown machine endianness detected.
-# endif
-# define BOOST_BYTE_ORDER __BYTE_ORDER
-#elif defined(__sparc) || defined(__sparc__) \
- || defined(_POWER) || defined(__powerpc__) \
- || defined(__ppc__) || defined(__hppa) \
- || defined(_MIPSEB) || defined(_POWER) \
- || defined(__s390__)
-# define BOOST_BIG_ENDIAN
-# define BOOST_BYTE_ORDER 4321
-#elif defined(__i386__) || defined(__alpha__) \
- || defined(__ia64) || defined(__ia64__) \
- || defined(_M_IX86) || defined(_M_IA64) \
- || defined(_M_ALPHA)
-# define BOOST_LITTLE_ENDIAN
-# define BOOST_BYTE_ORDER 1234
-#else
-# error The file boost/detail/endian.hpp needs to be set up for your CPU type.
-#endif
-
-
-#endif
+++ /dev/null
-// Copyright David Abrahams 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 INDIRECT_TRAITS_DWA2002131_HPP
-# define INDIRECT_TRAITS_DWA2002131_HPP
-# include <boost/type_traits/is_function.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_const.hpp>
-# include <boost/type_traits/is_volatile.hpp>
-# include <boost/type_traits/is_member_function_pointer.hpp>
-# include <boost/type_traits/is_member_pointer.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/type_traits/remove_reference.hpp>
-# include <boost/type_traits/remove_pointer.hpp>
-
-# include <boost/type_traits/detail/ice_and.hpp>
-# include <boost/detail/workaround.hpp>
-
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/and.hpp>
-# include <boost/mpl/not.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/detail/is_function_ref_tester.hpp>
-# endif
-
-namespace boost { namespace detail {
-
-namespace indirect_traits {
-
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T>
-struct is_reference_to_const : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_const<T const&> : mpl::true_
-{
-};
-
-# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
-template<class T>
-struct is_reference_to_const<T const volatile&> : mpl::true_
-{
-};
-# endif
-
-template <class T>
-struct is_reference_to_function : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_function<T&> : is_function<T>
-{
-};
-
-template <class T>
-struct is_pointer_to_function : mpl::false_
-{
-};
-
-// There's no such thing as a pointer-to-cv-function, so we don't need
-// specializations for those
-template <class T>
-struct is_pointer_to_function<T*> : is_function<T>
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl<T&>
- : is_member_function_pointer<typename remove_cv<T>::type>
-{
-};
-
-
-template <class T>
-struct is_reference_to_member_function_pointer
- : is_reference_to_member_function_pointer_impl<T>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <class T>
-struct is_reference_to_function_pointer_aux
- : mpl::and_<
- is_reference<T>
- , is_pointer_to_function<
- typename remove_cv<
- typename remove_reference<T>::type
- >::type
- >
- >
-{
- // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those
-};
-
-template <class T>
-struct is_reference_to_function_pointer
- : mpl::if_<
- is_reference_to_function<T>
- , mpl::false_
- , is_reference_to_function_pointer_aux<T>
- >::type
-{
-};
-
-template <class T>
-struct is_reference_to_non_const
- : mpl::and_<
- is_reference<T>
- , mpl::not_<
- is_reference_to_const<T>
- >
- >
-{
-};
-
-template <class T>
-struct is_reference_to_volatile : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_volatile<T volatile&> : mpl::true_
-{
-};
-
-# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
-template <class T>
-struct is_reference_to_volatile<T const volatile&> : mpl::true_
-{
-};
-# endif
-
-
-template <class T>
-struct is_reference_to_pointer : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T*&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* volatile&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const volatile&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_class
- : mpl::and_<
- is_reference<T>
- , is_class<
- typename remove_cv<
- typename remove_reference<T>::type
- >::type
- >
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <class T>
-struct is_pointer_to_class
- : mpl::and_<
- is_pointer<T>
- , is_class<
- typename remove_cv<
- typename remove_pointer<T>::type
- >::type
- >
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T))
-};
-
-# else
-
-using namespace boost::detail::is_function_ref_tester_;
-
-typedef char (&inner_yes_type)[3];
-typedef char (&inner_no_type)[2];
-typedef char (&outer_no_type)[1];
-
-template <typename V>
-struct is_const_help
-{
- typedef typename mpl::if_<
- is_const<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <typename V>
-struct is_volatile_help
-{
- typedef typename mpl::if_<
- is_volatile<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <typename V>
-struct is_pointer_help
-{
- typedef typename mpl::if_<
- is_pointer<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <typename V>
-struct is_class_help
-{
- typedef typename mpl::if_<
- is_class<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <class T>
-struct is_reference_to_function_aux
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::boost::type_traits::yes_type));
- typedef mpl::bool_<value> type;
- };
-
-template <class T>
-struct is_reference_to_function
- : mpl::if_<is_reference<T>, is_reference_to_function_aux<T>, mpl::bool_<false> >::type
-{
-};
-
-template <class T>
-struct is_pointer_to_function_aux
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(::boost::type_traits::is_function_ptr_tester(t)) == sizeof(::boost::type_traits::yes_type));
- typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_pointer_to_function
- : mpl::if_<is_pointer<T>, is_pointer_to_function_aux<T>, mpl::bool_<false> >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T))
-};
-
-struct false_helper1
-{
- template <class T>
- struct apply : mpl::false_
- {
- };
-};
-
-template <typename V>
-typename is_const_help<V>::type reference_to_const_helper(V&);
-outer_no_type
-reference_to_const_helper(...);
-
-struct true_helper1
-{
- template <class T>
- struct apply
- {
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type));
- typedef mpl::bool_<value> type;
- };
-};
-
-template <bool ref = true>
-struct is_reference_to_const_helper1 : true_helper1
-{
-};
-
-template <>
-struct is_reference_to_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_const
- : is_reference_to_const_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-
-template <bool ref = true>
-struct is_reference_to_non_const_helper1
-{
- template <class T>
- struct apply
- {
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type));
-
- typedef mpl::bool_<value> type;
- };
-};
-
-template <>
-struct is_reference_to_non_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_non_const
- : is_reference_to_non_const_helper1<is_reference<T>::value>::template apply<T>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T))
-};
-
-
-template <typename V>
-typename is_volatile_help<V>::type reference_to_volatile_helper(V&);
-outer_no_type
-reference_to_volatile_helper(...);
-
-template <bool ref = true>
-struct is_reference_to_volatile_helper1
-{
- template <class T>
- struct apply
- {
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type));
- typedef mpl::bool_<value> type;
- };
-};
-
-template <>
-struct is_reference_to_volatile_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_volatile
- : is_reference_to_volatile_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-template <typename V>
-typename is_pointer_help<V>::type reference_to_pointer_helper(V&);
-outer_no_type reference_to_pointer_helper(...);
-
-template <class T>
-struct is_reference_to_pointer
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (is_reference<T>::value
- && sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type))
- );
-
- typedef mpl::bool_<value> type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T))
-};
-
-template <class T>
-struct is_reference_to_function_pointer
- : mpl::if_<
- is_reference<T>
- , is_pointer_to_function_aux<T>
- , mpl::bool_<false>
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T))
-};
-
-
-template <class T>
-struct is_member_function_pointer_help
- : mpl::if_<is_member_function_pointer<T>, inner_yes_type, inner_no_type>
-{};
-
-template <typename V>
-typename is_member_function_pointer_help<V>::type member_function_pointer_helper(V&);
-outer_no_type member_function_pointer_helper(...);
-
-template <class T>
-struct is_pointer_to_member_function_aux
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type));
- typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer
- : mpl::if_<
- is_reference<T>
- , is_pointer_to_member_function_aux<T>
- , mpl::bool_<false>
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type reference_to_class_helper(V const volatile&);
-outer_no_type reference_to_class_helper(...);
-
-template <class T>
-struct is_reference_to_class
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (is_reference<T>::value
- & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type)))
- );
- typedef mpl::bool_<value> type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type pointer_to_class_helper(V const volatile*);
-outer_no_type pointer_to_class_helper(...);
-
-template <class T>
-struct is_pointer_to_class
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (is_pointer<T>::value
- && sizeof(pointer_to_class_helper(t)) == sizeof(inner_yes_type))
- );
- typedef mpl::bool_<value> type;
-};
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}
-
-using namespace indirect_traits;
-
-}} // namespace boost::python::detail
-
-#endif // INDIRECT_TRAITS_DWA2002131_HPP
+++ /dev/null
-#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/detail/interlocked.hpp
-//
-// Copyright 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_USE_WINDOWS_H )
-
-# include <windows.h>
-
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-
-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
-
-extern "C" long __cdecl _InterlockedIncrement( long volatile * );
-extern "C" long __cdecl _InterlockedDecrement( long volatile * );
-extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
-
-# pragma intrinsic( _InterlockedIncrement )
-# pragma intrinsic( _InterlockedDecrement )
-# pragma intrinsic( _InterlockedCompareExchange )
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-
-namespace boost
-{
-
-namespace detail
-{
-
-extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * );
-extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * );
-extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long );
-
-} // namespace detail
-
-} // namespace boost
-
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-
-#else
-
-# error "Interlocked intrinsics not available"
-
-#endif
-
-#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// Distributed under the 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_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-#define BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-
-#include "boost/type_traits/detail/yes_no_type.hpp"
-#include "boost/type_traits/config.hpp"
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include "boost/preprocessor/iterate.hpp"
-# include "boost/preprocessor/enum_params.hpp"
-# include "boost/preprocessor/comma_if.hpp"
-#endif
-
-namespace boost {
-namespace detail {
-namespace is_function_ref_tester_ {
-
-template <class T>
-boost::type_traits::no_type BOOST_TT_DECL is_function_ref_tester(T& ...);
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R>
-boost::type_traits::yes_type is_function_ref_tester(R (&)(), int);
-
-template <class R,class T0 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0), int);
-
-template <class R,class T0,class T1 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1), int);
-
-template <class R,class T0,class T1,class T2 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2), int);
-
-template <class R,class T0,class T1,class T2,class T3 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22,class T23 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22,class T23,class T24 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24), int);
-
-#else
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_function_ref_tester.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace detail
-} // namespace python
-} // namespace boost
-
-#endif // BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i BOOST_PP_FRAME_ITERATION(1)
-
-template <class R BOOST_PP_COMMA_IF(i) BOOST_PP_ENUM_PARAMS(i,class T) >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(BOOST_PP_ENUM_PARAMS(i,T)), int);
-
-#undef i
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-// Copyright David Abrahams 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)
-#ifndef IS_INCREMENTABLE_DWA200415_HPP
-# define IS_INCREMENTABLE_DWA200415_HPP
-
-# include <boost/type_traits/detail/bool_trait_def.hpp>
-# include <boost/type_traits/detail/template_arity_spec.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/detail/workaround.hpp>
-
-namespace boost { namespace detail {
-
-// is_incrementable<T> metafunction
-//
-// Requires: Given x of type T&, if the expression ++x is well-formed
-// it must have complete type; otherwise, it must neither be ambiguous
-// nor violate access.
-
-// This namespace ensures that ADL doesn't mess things up.
-namespace is_incrementable_
-{
- // a type returned from operator++ when no increment is found in the
- // type's own namespace
- struct tag {};
-
- // any soaks up implicit conversions and makes the following
- // operator++ less-preferred than any other such operator that
- // might be found via ADL.
- struct any { template <class T> any(T const&); };
-
- // This is a last-resort operator++ for when none other is found
-# if BOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
-
-}
-
-namespace is_incrementable_2
-{
- is_incrementable_::tag operator++(is_incrementable_::any const&);
- is_incrementable_::tag operator++(is_incrementable_::any const&,int);
-}
-using namespace is_incrementable_2;
-
-namespace is_incrementable_
-{
-
-# else
-
- tag operator++(any const&);
- tag operator++(any const&,int);
-
-# endif
-
-# if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
- || BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-# define BOOST_comma(a,b) (a)
-# else
- // In case an operator++ is found that returns void, we'll use ++x,0
- tag operator,(tag,int);
-# define BOOST_comma(a,b) (a,b)
-# endif
-
- // two check overloads help us identify which operator++ was picked
- char (& check(tag) )[2];
-
- template <class T>
- char check(T const&);
-
-
- template <class T>
- struct impl
- {
- static typename boost::remove_cv<T>::type& x;
-
- BOOST_STATIC_CONSTANT(
- bool
- , value = sizeof(is_incrementable_::check(BOOST_comma(++x,0))) == 1
- );
- };
-
- template <class T>
- struct postfix_impl
- {
- static typename boost::remove_cv<T>::type& x;
-
- BOOST_STATIC_CONSTANT(
- bool
- , value = sizeof(is_incrementable_::check(BOOST_comma(x++,0))) == 1
- );
- };
-}
-
-# undef BOOST_comma
-
-template<typename T>
-struct is_incrementable
-BOOST_TT_AUX_BOOL_C_BASE(::boost::detail::is_incrementable_::impl<T>::value)
-{
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(::boost::detail::is_incrementable_::impl<T>::value)
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_incrementable,(T))
-};
-
-template<typename T>
-struct is_postfix_incrementable
-BOOST_TT_AUX_BOOL_C_BASE(::boost::detail::is_incrementable_::impl<T>::value)
-{
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(::boost::detail::is_incrementable_::postfix_impl<T>::value)
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_postfix_incrementable,(T))
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::boost::detail::is_incrementable)
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::boost::detail::is_postfix_incrementable)
-
-} // namespace boost
-
-
-#endif // IS_INCREMENTABLE_DWA200415_HPP
+++ /dev/null
-// Copyright David Abrahams 2005. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_DETAIL_IS_XXX_DWA20051011_HPP
-# define BOOST_DETAIL_IS_XXX_DWA20051011_HPP
-
-# include <boost/config.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/add_reference.hpp>
-
-# define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs) \
-template <class X_> \
-struct is_##name \
-{ \
- typedef char yes; \
- typedef char (&no)[2]; \
- \
- static typename add_reference<X_>::type dummy; \
- \
- struct helpers \
- { \
- template < BOOST_PP_ENUM_PARAMS_Z(1, nargs, class U) > \
- static yes test( \
- qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, U) >&, int \
- ); \
- \
- template <class U> \
- static no test(U&, ...); \
- }; \
- \
- BOOST_STATIC_CONSTANT( \
- bool, value \
- = !is_reference<X_>::value \
- & (sizeof(helpers::test(dummy, 0)) == sizeof(yes))); \
- \
- typedef mpl::bool_<value> type; \
-};
-
-# else
-
-# define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs) \
-template <class T> \
-struct is_##name : mpl::false_ \
-{ \
-}; \
- \
-template < BOOST_PP_ENUM_PARAMS_Z(1, nargs, class T) > \
-struct is_##name< \
- qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, T) > \
-> \
- : mpl::true_ \
-{ \
-};
-
-# endif
-
-#endif // BOOST_DETAIL_IS_XXX_DWA20051011_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 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)
-
-// Boost versions of
-//
-// std::iterator_traits<>::iterator_category
-// std::iterator_traits<>::difference_type
-// std::distance()
-//
-// ...for all compilers and iterators
-//
-// Additionally, if X is a pointer
-// std::iterator_traits<X>::pointer
-
-// Otherwise, if partial specialization is supported or X is not a pointer
-// std::iterator_traits<X>::value_type
-// std::iterator_traits<X>::pointer
-// std::iterator_traits<X>::reference
-//
-// See http://www.boost.org for most recent version including documentation.
-
-// Revision History
-// 04 Mar 2001 - More attempted fixes for Intel C++ (David Abrahams)
-// 03 Mar 2001 - Put all implementation into namespace
-// boost::detail::iterator_traits_. Some progress made on fixes
-// for Intel compiler. (David Abrahams)
-// 02 Mar 2001 - Changed BOOST_MSVC to BOOST_MSVC_STD_ITERATOR in a few
-// places. (Jeremy Siek)
-// 19 Feb 2001 - Improved workarounds for stock MSVC6; use yes_type and
-// no_type from type_traits.hpp; stopped trying to remove_cv
-// before detecting is_pointer, in honor of the new type_traits
-// semantics. (David Abrahams)
-// 13 Feb 2001 - Make it work with nearly all standard-conforming iterators
-// under raw VC6. The one category remaining which will fail is
-// that of iterators derived from std::iterator but not
-// boost::iterator and which redefine difference_type.
-// 11 Feb 2001 - Clean away code which can never be used (David Abrahams)
-// 09 Feb 2001 - Always have a definition for each traits member, even if it
-// can't be properly deduced. These will be incomplete types in
-// some cases (undefined<void>), but it helps suppress MSVC errors
-// elsewhere (David Abrahams)
-// 07 Feb 2001 - Support for more of the traits members where possible, making
-// this useful as a replacement for std::iterator_traits<T> when
-// used as a default template parameter.
-// 06 Feb 2001 - Removed useless #includes of standard library headers
-// (David Abrahams)
-
-#ifndef ITERATOR_DWA122600_HPP_
-# define ITERATOR_DWA122600_HPP_
-
-# include <boost/config.hpp>
-# include <iterator>
-
-// STLPort 4.0 and betas have a bug when debugging is enabled and there is no
-// partial specialization: instead of an iterator_category typedef, the standard
-// container iterators have _Iterator_category.
-//
-// Also, whether debugging is enabled or not, there is a broken specialization
-// of std::iterator<output_iterator_tag,void,void,void,void> which has no
-// typedefs but iterator_category.
-# if defined(__SGI_STL_PORT)
-
-# if (__SGI_STL_PORT <= 0x410) && !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && defined(__STL_DEBUG)
-# define BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-# endif
-
-# define BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-
-# endif // STLPort <= 4.1b4 && no partial specialization
-
-# if !defined(BOOST_NO_STD_ITERATOR_TRAITS) \
- && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MSVC_STD_ITERATOR)
-
-namespace boost { namespace detail {
-
-// Define a new template so it can be specialized
-template <class Iterator>
-struct iterator_traits
- : std::iterator_traits<Iterator>
-{};
-using std::distance;
-
-}} // namespace boost::detail
-
-# else
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MSVC_STD_ITERATOR)
-
-// This is the case where everything conforms except BOOST_NO_STD_ITERATOR_TRAITS
-
-namespace boost { namespace detail {
-
-// Rogue Wave Standard Library fools itself into thinking partial
-// specialization is missing on some platforms (e.g. Sun), so fails to
-// supply iterator_traits!
-template <class Iterator>
-struct iterator_traits
-{
- typedef typename Iterator::value_type value_type;
- typedef typename Iterator::reference reference;
- typedef typename Iterator::pointer pointer;
- typedef typename Iterator::difference_type difference_type;
- typedef typename Iterator::iterator_category iterator_category;
-};
-
-template <class T>
-struct iterator_traits<T*>
-{
- typedef T value_type;
- typedef T& reference;
- typedef T* pointer;
- typedef std::ptrdiff_t difference_type;
- typedef std::random_access_iterator_tag iterator_category;
-};
-
-template <class T>
-struct iterator_traits<T const*>
-{
- typedef T value_type;
- typedef T const& reference;
- typedef T const* pointer;
- typedef std::ptrdiff_t difference_type;
- typedef std::random_access_iterator_tag iterator_category;
-};
-
-}} // namespace boost::detail
-
-# else
-
-# include <boost/type_traits/remove_const.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/is_same.hpp>
-# include <boost/type_traits/remove_pointer.hpp>
-# endif
-# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-# include <boost/type_traits/is_base_and_derived.hpp>
-# endif
-
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/has_xxx.hpp>
-# include <cstddef>
-
-// should be the last #include
-# include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost { namespace detail {
-
-BOOST_MPL_HAS_XXX_TRAIT_DEF(value_type)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(reference)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(pointer)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(difference_type)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator_category)
-
-// is_mutable_iterator --
-//
-// A metafunction returning true iff T is a mutable iterator type
-// with a nested value_type. Will only work portably with iterators
-// whose operator* returns a reference, but that seems to be OK for
-// the iterators supplied by Dinkumware. Some input iterators may
-// compile-time if they arrive here, and if the compiler is strict
-// about not taking the address of an rvalue.
-
-// This one detects ordinary mutable iterators - the result of
-// operator* is convertible to the value_type.
-template <class T>
-type_traits::yes_type is_mutable_iterator_helper(T const*, BOOST_DEDUCED_TYPENAME T::value_type*);
-
-// Since you can't take the address of an rvalue, the guts of
-// is_mutable_iterator_impl will fail if we use &*t directly. This
-// makes sure we can still work with non-lvalue iterators.
-template <class T> T* mutable_iterator_lvalue_helper(T& x);
-int mutable_iterator_lvalue_helper(...);
-
-
-// This one detects output iterators such as ostream_iterator which
-// return references to themselves.
-template <class T>
-type_traits::yes_type is_mutable_iterator_helper(T const*, T const*);
-
-type_traits::no_type is_mutable_iterator_helper(...);
-
-template <class T>
-struct is_mutable_iterator_impl
-{
- static T t;
-
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(
- detail::is_mutable_iterator_helper(
- (T*)0
- , mutable_iterator_lvalue_helper(*t) // like &*t
- ))
- == sizeof(type_traits::yes_type)
- );
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_mutable_iterator,T,::boost::detail::is_mutable_iterator_impl<T>::value)
-
-
-// is_full_iterator_traits --
-//
-// A metafunction returning true iff T has all the requisite nested
-// types to satisfy the requirements for a fully-conforming
-// iterator_traits implementation.
-template <class T>
-struct is_full_iterator_traits_impl
-{
- enum { value =
- has_value_type<T>::value
- & has_reference<T>::value
- & has_pointer<T>::value
- & has_difference_type<T>::value
- & has_iterator_category<T>::value
- };
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_full_iterator_traits,T,::boost::detail::is_full_iterator_traits_impl<T>::value)
-
-
-# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-BOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category)
-
-// is_stlport_40_debug_iterator --
-//
-// A metafunction returning true iff T has all the requisite nested
-// types to satisfy the requirements of an STLPort 4.0 debug iterator
-// iterator_traits implementation.
-template <class T>
-struct is_stlport_40_debug_iterator_impl
-{
- enum { value =
- has_value_type<T>::value
- & has_reference<T>::value
- & has_pointer<T>::value
- & has_difference_type<T>::value
- & has__Iterator_category<T>::value
- };
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_stlport_40_debug_iterator,T,::boost::detail::is_stlport_40_debug_iterator_impl<T>::value)
-
-template <class T>
-struct stlport_40_debug_iterator_traits
-{
- typedef typename T::value_type value_type;
- typedef typename T::reference reference;
- typedef typename T::pointer pointer;
- typedef typename T::difference_type difference_type;
- typedef typename T::_Iterator_category iterator_category;
-};
-# endif // BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-
-template <class T> struct pointer_iterator_traits;
-
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T>
-struct pointer_iterator_traits<T*>
-{
- typedef typename remove_const<T>::type value_type;
- typedef T* pointer;
- typedef T& reference;
- typedef std::random_access_iterator_tag iterator_category;
- typedef std::ptrdiff_t difference_type;
-};
-# else
-
-// In case of no template partial specialization, and if T is a
-// pointer, iterator_traits<T>::value_type can still be computed. For
-// some basic types, remove_pointer is manually defined in
-// type_traits/broken_compiler_spec.hpp. For others, do it yourself.
-
-template<class P> class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee;
-
-template<class P>
-struct pointer_value_type
- : mpl::if_<
- is_same<P, typename remove_pointer<P>::type>
- , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
- , typename remove_const<
- typename remove_pointer<P>::type
- >::type
- >
-{
-};
-
-
-template<class P>
-struct pointer_reference
- : mpl::if_<
- is_same<P, typename remove_pointer<P>::type>
- , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
- , typename remove_pointer<P>::type&
- >
-{
-};
-
-template <class T>
-struct pointer_iterator_traits
-{
- typedef T pointer;
- typedef std::random_access_iterator_tag iterator_category;
- typedef std::ptrdiff_t difference_type;
-
- typedef typename pointer_value_type<T>::type value_type;
- typedef typename pointer_reference<T>::type reference;
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// We'll sort iterator types into one of these classifications, from which we
-// can determine the difference_type, pointer, reference, and value_type
-template <class Iterator>
-struct standard_iterator_traits
-{
- typedef typename Iterator::difference_type difference_type;
- typedef typename Iterator::value_type value_type;
- typedef typename Iterator::pointer pointer;
- typedef typename Iterator::reference reference;
- typedef typename Iterator::iterator_category iterator_category;
-};
-
-template <class Iterator>
-struct msvc_stdlib_mutable_traits
- : std::iterator_traits<Iterator>
-{
- typedef typename std::iterator_traits<Iterator>::distance_type difference_type;
- typedef typename std::iterator_traits<Iterator>::value_type* pointer;
- typedef typename std::iterator_traits<Iterator>::value_type& reference;
-};
-
-template <class Iterator>
-struct msvc_stdlib_const_traits
- : std::iterator_traits<Iterator>
-{
- typedef typename std::iterator_traits<Iterator>::distance_type difference_type;
- typedef const typename std::iterator_traits<Iterator>::value_type* pointer;
- typedef const typename std::iterator_traits<Iterator>::value_type& reference;
-};
-
-# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-template <class Iterator>
-struct is_bad_output_iterator
- : is_base_and_derived<
- std::iterator<std::output_iterator_tag,void,void,void,void>
- , Iterator>
-{
-};
-
-struct bad_output_iterator_traits
-{
- typedef void value_type;
- typedef void difference_type;
- typedef std::output_iterator_tag iterator_category;
- typedef void pointer;
- typedef void reference;
-};
-# endif
-
-// If we're looking at an MSVC6 (old Dinkumware) ``standard''
-// iterator, this will generate an appropriate traits class.
-template <class Iterator>
-struct msvc_stdlib_iterator_traits
- : mpl::if_<
- is_mutable_iterator<Iterator>
- , msvc_stdlib_mutable_traits<Iterator>
- , msvc_stdlib_const_traits<Iterator>
- >::type
-{};
-
-template <class Iterator>
-struct non_pointer_iterator_traits
- : mpl::if_<
- // if the iterator contains all the right nested types...
- is_full_iterator_traits<Iterator>
- // Use a standard iterator_traits implementation
- , standard_iterator_traits<Iterator>
-# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
- // Check for STLPort 4.0 broken _Iterator_category type
- , mpl::if_<
- is_stlport_40_debug_iterator<Iterator>
- , stlport_40_debug_iterator_traits<Iterator>
-# endif
- // Otherwise, assume it's a Dinkum iterator
- , msvc_stdlib_iterator_traits<Iterator>
-# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
- >::type
-# endif
- >::type
-{
-};
-
-template <class Iterator>
-struct iterator_traits_aux
- : mpl::if_<
- is_pointer<Iterator>
- , pointer_iterator_traits<Iterator>
- , non_pointer_iterator_traits<Iterator>
- >::type
-{
-};
-
-template <class Iterator>
-struct iterator_traits
-{
- // Explicit forwarding from base class needed to keep MSVC6 happy
- // under some circumstances.
- private:
-# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
- typedef
- typename mpl::if_<
- is_bad_output_iterator<Iterator>
- , bad_output_iterator_traits
- , iterator_traits_aux<Iterator>
- >::type base;
-# else
- typedef iterator_traits_aux<Iterator> base;
-# endif
- public:
- typedef typename base::value_type value_type;
- typedef typename base::pointer pointer;
- typedef typename base::reference reference;
- typedef typename base::difference_type difference_type;
- typedef typename base::iterator_category iterator_category;
-};
-
-// This specialization cuts off ETI (Early Template Instantiation) for MSVC.
-template <> struct iterator_traits<int>
-{
- typedef int value_type;
- typedef int pointer;
- typedef int reference;
- typedef int difference_type;
- typedef int iterator_category;
-};
-
-}} // namespace boost::detail
-
-# endif // workarounds
-
-namespace boost { namespace detail {
-
-namespace iterator_traits_
-{
- template <class Iterator, class Difference>
- struct distance_select
- {
- static Difference execute(Iterator i1, const Iterator i2, ...)
- {
- Difference result = 0;
- while (i1 != i2)
- {
- ++i1;
- ++result;
- }
- return result;
- }
-
- static Difference execute(Iterator i1, const Iterator i2, std::random_access_iterator_tag*)
- {
- return i2 - i1;
- }
- };
-} // namespace boost::detail::iterator_traits_
-
-template <class Iterator>
-inline typename iterator_traits<Iterator>::difference_type
-distance(Iterator first, Iterator last)
-{
- typedef typename iterator_traits<Iterator>::difference_type diff_t;
- typedef typename ::boost::detail::iterator_traits<Iterator>::iterator_category iterator_category;
-
- return iterator_traits_::distance_select<Iterator,diff_t>::execute(
- first, last, (iterator_category*)0);
-}
-
-}}
-
-# endif
-
-
-# undef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-# undef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-
-#endif // ITERATOR_DWA122600_HPP_
+++ /dev/null
-#ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define BOOST_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/detail/lwm_nop.hpp>
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
-# include <boost/detail/lwm_win32_cs.hpp>
-#elif defined(BOOST_HAS_PTHREADS)
-# include <boost/detail/lwm_pthreads.hpp>
-#else
-// Use #define BOOST_DISABLE_THREADS to avoid the error
-# error Unrecognized threading platform
-#endif
-
-#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
-#define BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/detail/lightweight_test.hpp - lightweight test library
-//
-// 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)
-//
-// BOOST_TEST(expression)
-// BOOST_ERROR(message)
-//
-// int boost::report_errors()
-//
-
-#include <boost/current_function.hpp>
-#include <iostream>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline int & test_errors()
-{
- static int x = 0;
- return x;
-}
-
-inline void test_failed_impl(char const * expr, char const * file, int line, char const * function)
-{
- std::cerr << file << "(" << line << "): test '" << expr << "' failed in function '" << function << "'" << std::endl;
- ++test_errors();
-}
-
-inline void error_impl(char const * msg, char const * file, int line, char const * function)
-{
- std::cerr << file << "(" << line << "): " << msg << " in function '" << function << "'" << std::endl;
- ++test_errors();
-}
-
-} // namespace detail
-
-inline int report_errors()
-{
- int errors = detail::test_errors();
-
- if(errors == 0)
- {
- std::cerr << "No errors detected." << std::endl;
- return 0;
- }
- else
- {
- std::cerr << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl;
- return 1;
- }
-}
-
-} // namespace boost
-
-#define BOOST_TEST(expr) ((expr)? (void)0: ::boost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
-#define BOOST_ERROR(msg) ::boost::detail::error_impl(msg, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION)
-
-#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
+++ /dev/null
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- */
-
-/* NOTE: This is not portable code. Parts of numeric_limits<> are
- * inherently machine-dependent, and this file is written for the MIPS
- * architecture and the SGI MIPSpro C++ compiler. Parts of it (in
- * particular, some of the characteristics of floating-point types)
- * are almost certainly incorrect for any other platform.
- */
-
-/* The above comment is almost certainly out of date. This file works
- * on systems other than SGI MIPSpro C++ now.
- */
-
-/*
- * Revision history:
- * 21 Sep 2001:
- * Only include <cwchar> if BOOST_NO_CWCHAR is defined. (Darin Adler)
- * 10 Aug 2001:
- * Added MIPS (big endian) to the big endian family. (Jens Maurer)
- * 13 Apr 2001:
- * Added powerpc to the big endian family. (Jeremy Siek)
- * 5 Apr 2001:
- * Added sparc (big endian) processor support (John Maddock).
- * Initial sub:
- * Modified by Jens Maurer for gcc 2.95 on x86.
- */
-
-#ifndef BOOST_SGI_CPP_LIMITS
-#define BOOST_SGI_CPP_LIMITS
-
-#include <climits>
-#include <cfloat>
-#include <boost/config.hpp>
-#include <boost/detail/endian.hpp>
-
-#ifndef BOOST_NO_CWCHAR
-#include <cwchar> // for WCHAR_MIN and WCHAR_MAX
-#endif
-
-namespace std {
-
-enum float_round_style {
- round_indeterminate = -1,
- round_toward_zero = 0,
- round_to_nearest = 1,
- round_toward_infinity = 2,
- round_toward_neg_infinity = 3
-};
-
-enum float_denorm_style {
- denorm_indeterminate = -1,
- denorm_absent = 0,
- denorm_present = 1
-};
-
-// The C++ standard (section 18.2.1) requires that some of the members of
-// numeric_limits be static const data members that are given constant-
-// initializers within the class declaration. On compilers where the
-// BOOST_NO_INCLASS_MEMBER_INITIALIZATION macro is defined, it is impossible to write
-// a standard-conforming numeric_limits class.
-//
-// There are two possible workarounds: either initialize the data
-// members outside the class, or change them from data members to
-// enums. Neither workaround is satisfactory: the former makes it
-// impossible to use the data members in constant-expressions, and the
-// latter means they have the wrong type and that it is impossible to
-// take their addresses. We choose the former workaround.
-
-#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_STL_DECLARE_LIMITS_MEMBER(__mem_type, __mem_name, __mem_value) \
- enum { __mem_name = __mem_value }
-#else /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */
-# define BOOST_STL_DECLARE_LIMITS_MEMBER(__mem_type, __mem_name, __mem_value) \
- static const __mem_type __mem_name = __mem_value
-#endif /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */
-
-// Base class for all specializations of numeric_limits.
-template <class __number>
-class _Numeric_limits_base {
-public:
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, false);
-
- static __number min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __number(); }
- static __number max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __number(); }
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits, 0);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, 0);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_integer, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_exact, false);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 0);
-
- static __number epsilon() throw() { return __number(); }
- static __number round_error() throw() { return __number(); }
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent, 0);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent10, 0);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent, 0);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent10, 0);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_infinity, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_quiet_NaN, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_signaling_NaN, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(float_denorm_style,
- has_denorm,
- denorm_absent);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_denorm_loss, false);
-
- static __number infinity() throw() { return __number(); }
- static __number quiet_NaN() throw() { return __number(); }
- static __number signaling_NaN() throw() { return __number(); }
- static __number denorm_min() throw() { return __number(); }
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_iec559, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_modulo, false);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, traps, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, tinyness_before, false);
- BOOST_STL_DECLARE_LIMITS_MEMBER(float_round_style,
- round_style,
- round_toward_zero);
-};
-
-// Base class for integers.
-
-template <class _Int,
- _Int __imin,
- _Int __imax,
- int __idigits = -1>
-class _Integer_limits : public _Numeric_limits_base<_Int>
-{
-public:
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, true);
-
- static _Int min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __imin; }
- static _Int max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __imax; }
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int,
- digits,
- (__idigits < 0) ? (int)(sizeof(_Int) * CHAR_BIT)
- - (__imin == 0 ? 0 : 1)
- : __idigits);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, (digits * 301) / 1000);
- // log 2 = 0.301029995664...
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, __imin != 0);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_integer, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_exact, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 2);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_modulo, true);
-};
-
-#if defined(BOOST_BIG_ENDIAN)
-
- template<class Number, unsigned int Word>
- struct float_helper{
- static Number get_word() throw() {
- // sizeof(long double) == 16
- const unsigned int _S_word[4] = { Word, 0, 0, 0 };
- return *reinterpret_cast<const Number*>(&_S_word);
- }
-};
-
-#else
-
- template<class Number, unsigned int Word>
- struct float_helper{
- static Number get_word() throw() {
- // sizeof(long double) == 12, but only 10 bytes significant
- const unsigned int _S_word[4] = { 0, 0, 0, Word };
- return *reinterpret_cast<const Number*>(
- reinterpret_cast<const char *>(&_S_word)+16-
- (sizeof(Number) == 12 ? 10 : sizeof(Number)));
- }
-};
-
-#endif
-
-// Base class for floating-point numbers.
-template <class __number,
- int __Digits, int __Digits10,
- int __MinExp, int __MaxExp,
- int __MinExp10, int __MaxExp10,
- unsigned int __InfinityWord,
- unsigned int __QNaNWord, unsigned int __SNaNWord,
- bool __IsIEC559,
- float_round_style __RoundStyle>
-class _Floating_limits : public _Numeric_limits_base<__number>
-{
-public:
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, true);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits, __Digits);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, __Digits10);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, true);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 2);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent, __MinExp);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent, __MaxExp);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent10, __MinExp10);
- BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent10, __MaxExp10);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_infinity, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_quiet_NaN, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_signaling_NaN, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(float_denorm_style,
- has_denorm,
- denorm_indeterminate);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_denorm_loss, false);
-
-
- static __number infinity() throw() {
- return float_helper<__number, __InfinityWord>::get_word();
- }
- static __number quiet_NaN() throw() {
- return float_helper<__number,__QNaNWord>::get_word();
- }
- static __number signaling_NaN() throw() {
- return float_helper<__number,__SNaNWord>::get_word();
- }
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_iec559, __IsIEC559);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, true);
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, traps, false /* was: true */ );
- BOOST_STL_DECLARE_LIMITS_MEMBER(bool, tinyness_before, false);
-
- BOOST_STL_DECLARE_LIMITS_MEMBER(float_round_style, round_style, __RoundStyle);
-};
-
-// Class numeric_limits
-
-// The unspecialized class.
-
-template<class T>
-class numeric_limits : public _Numeric_limits_base<T> {};
-
-// Specializations for all built-in integral types.
-
-template<>
-class numeric_limits<bool>
- : public _Integer_limits<bool, false, true, 0>
-{};
-
-template<>
-class numeric_limits<char>
- : public _Integer_limits<char, CHAR_MIN, CHAR_MAX>
-{};
-
-template<>
-class numeric_limits<signed char>
- : public _Integer_limits<signed char, SCHAR_MIN, SCHAR_MAX>
-{};
-
-template<>
-class numeric_limits<unsigned char>
- : public _Integer_limits<unsigned char, 0, UCHAR_MAX>
-{};
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-template<>
-class numeric_limits<wchar_t>
-#if !defined(WCHAR_MAX) || !defined(WCHAR_MIN)
-#if defined(_WIN32) || defined(__CYGWIN__)
- : public _Integer_limits<wchar_t, 0, USHRT_MAX>
-#elif defined(__hppa)
-// wchar_t has "unsigned int" as the underlying type
- : public _Integer_limits<wchar_t, 0, UINT_MAX>
-#else
-// assume that wchar_t has "int" as the underlying type
- : public _Integer_limits<wchar_t, INT_MIN, INT_MAX>
-#endif
-#else
-// we have WCHAR_MIN and WCHAR_MAX defined, so use it
- : public _Integer_limits<wchar_t, WCHAR_MIN, WCHAR_MAX>
-#endif
-{};
-#endif
-
-template<>
-class numeric_limits<short>
- : public _Integer_limits<short, SHRT_MIN, SHRT_MAX>
-{};
-
-template<>
-class numeric_limits<unsigned short>
- : public _Integer_limits<unsigned short, 0, USHRT_MAX>
-{};
-
-template<>
-class numeric_limits<int>
- : public _Integer_limits<int, INT_MIN, INT_MAX>
-{};
-
-template<>
-class numeric_limits<unsigned int>
- : public _Integer_limits<unsigned int, 0, UINT_MAX>
-{};
-
-template<>
-class numeric_limits<long>
- : public _Integer_limits<long, LONG_MIN, LONG_MAX>
-{};
-
-template<>
-class numeric_limits<unsigned long>
- : public _Integer_limits<unsigned long, 0, ULONG_MAX>
-{};
-
-#ifdef __GNUC__
-
-// Some compilers have long long, but don't define the
-// LONGLONG_MIN and LONGLONG_MAX macros in limits.h. This
-// assumes that long long is 64 bits.
-#if !defined(LONGLONG_MAX) && !defined(ULONGLONG_MAX)
-
-# define ULONGLONG_MAX 0xffffffffffffffffLLU
-# define LONGLONG_MAX 0x7fffffffffffffffLL
-
-#endif
-
-#if !defined(LONGLONG_MIN)
-# define LONGLONG_MIN (-LONGLONG_MAX - 1)
-#endif
-
-
-#if !defined(ULONGLONG_MIN)
-# define ULONGLONG_MIN 0
-#endif
-
-#endif /* __GNUC__ */
-
-// Specializations for all built-in floating-point type.
-
-template<> class numeric_limits<float>
- : public _Floating_limits<float,
- FLT_MANT_DIG, // Binary digits of precision
- FLT_DIG, // Decimal digits of precision
- FLT_MIN_EXP, // Minimum exponent
- FLT_MAX_EXP, // Maximum exponent
- FLT_MIN_10_EXP, // Minimum base 10 exponent
- FLT_MAX_10_EXP, // Maximum base 10 exponent
-#if defined(BOOST_BIG_ENDIAN)
- 0x7f80 << (sizeof(int)*CHAR_BIT-16), // Last word of +infinity
- 0x7f81 << (sizeof(int)*CHAR_BIT-16), // Last word of quiet NaN
- 0x7fc1 << (sizeof(int)*CHAR_BIT-16), // Last word of signaling NaN
-#else
- 0x7f800000u, // Last word of +infinity
- 0x7f810000u, // Last word of quiet NaN
- 0x7fc10000u, // Last word of signaling NaN
-#endif
- true, // conforms to iec559
- round_to_nearest>
-{
-public:
- static float min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return FLT_MIN; }
- static float denorm_min() throw() { return FLT_MIN; }
- static float max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return FLT_MAX; }
- static float epsilon() throw() { return FLT_EPSILON; }
- static float round_error() throw() { return 0.5f; } // Units: ulps.
-};
-
-template<> class numeric_limits<double>
- : public _Floating_limits<double,
- DBL_MANT_DIG, // Binary digits of precision
- DBL_DIG, // Decimal digits of precision
- DBL_MIN_EXP, // Minimum exponent
- DBL_MAX_EXP, // Maximum exponent
- DBL_MIN_10_EXP, // Minimum base 10 exponent
- DBL_MAX_10_EXP, // Maximum base 10 exponent
-#if defined(BOOST_BIG_ENDIAN)
- 0x7ff0 << (sizeof(int)*CHAR_BIT-16), // Last word of +infinity
- 0x7ff1 << (sizeof(int)*CHAR_BIT-16), // Last word of quiet NaN
- 0x7ff9 << (sizeof(int)*CHAR_BIT-16), // Last word of signaling NaN
-#else
- 0x7ff00000u, // Last word of +infinity
- 0x7ff10000u, // Last word of quiet NaN
- 0x7ff90000u, // Last word of signaling NaN
-#endif
- true, // conforms to iec559
- round_to_nearest>
-{
-public:
- static double min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return DBL_MIN; }
- static double denorm_min() throw() { return DBL_MIN; }
- static double max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return DBL_MAX; }
- static double epsilon() throw() { return DBL_EPSILON; }
- static double round_error() throw() { return 0.5; } // Units: ulps.
-};
-
-template<> class numeric_limits<long double>
- : public _Floating_limits<long double,
- LDBL_MANT_DIG, // Binary digits of precision
- LDBL_DIG, // Decimal digits of precision
- LDBL_MIN_EXP, // Minimum exponent
- LDBL_MAX_EXP, // Maximum exponent
- LDBL_MIN_10_EXP,// Minimum base 10 exponent
- LDBL_MAX_10_EXP,// Maximum base 10 exponent
-#if defined(BOOST_BIG_ENDIAN)
- 0x7ff0 << (sizeof(int)*CHAR_BIT-16), // Last word of +infinity
- 0x7ff1 << (sizeof(int)*CHAR_BIT-16), // Last word of quiet NaN
- 0x7ff9 << (sizeof(int)*CHAR_BIT-16), // Last word of signaling NaN
-#else
- 0x7fff8000u, // Last word of +infinity
- 0x7fffc000u, // Last word of quiet NaN
- 0x7fff9000u, // Last word of signaling NaN
-#endif
- false, // Doesn't conform to iec559
- round_to_nearest>
-{
-public:
- static long double min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return LDBL_MIN; }
- static long double denorm_min() throw() { return LDBL_MIN; }
- static long double max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return LDBL_MAX; }
- static long double epsilon() throw() { return LDBL_EPSILON; }
- static long double round_error() throw() { return 4; } // Units: ulps.
-};
-
-} // namespace std
-
-#endif /* BOOST_SGI_CPP_LIMITS */
-
-// Local Variables:
-// mode:C++
-// End:
-
-
-
+++ /dev/null
-#ifndef BOOST_DETAIL_LWM_NOP_HPP_INCLUDED
-#define BOOST_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_DETAIL_LWM_NOP_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_LWM_PTHREADS_HPP_INCLUDED
-#define BOOST_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_DETAIL_LWM_PTHREADS_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
-#define BOOST_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 *);
-
-#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_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// Revision History:
-
-// 04 Oct 2001 David Abrahams
-// Changed name of "bind" to "select" to avoid problems with MSVC.
-
-#ifndef BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP
-#define BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP
-
-#include <boost/type_traits/conversion_traits.hpp>
-#include <boost/type_traits/composite_traits.hpp> // for is_reference
-#if defined(__BORLANDC__)
-#include <boost/type_traits/ice.hpp>
-#endif
-
-namespace boost {
- namespace detail {
-
- struct default_argument { };
-
- struct dummy_default_gen {
- template <class Base, class Traits>
- struct select {
- typedef default_argument type;
- };
- };
-
- // This class template is a workaround for MSVC.
- template <class Gen> struct default_generator {
- typedef detail::dummy_default_gen type;
- };
-
- template <class T> struct is_default {
- enum { value = false };
- typedef type_traits::no_type type;
- };
- template <> struct is_default<default_argument> {
- enum { value = true };
- typedef type_traits::yes_type type;
- };
-
- struct choose_default {
- template <class Arg, class DefaultGen, class Base, class Traits>
- struct select {
- typedef typename default_generator<DefaultGen>::type Gen;
- typedef typename Gen::template select<Base,Traits>::type type;
- };
- };
- struct choose_arg {
- template <class Arg, class DefaultGen, class Base, class Traits>
- struct select {
- typedef Arg type;
- };
- };
-
-#if defined(__BORLANDC__)
- template <class UseDefault>
- struct choose_arg_or_default { typedef choose_arg type; };
- template <>
- struct choose_arg_or_default<type_traits::yes_type> {
- typedef choose_default type;
- };
-#else
- template <bool UseDefault>
- struct choose_arg_or_default { typedef choose_arg type; };
- template <>
- struct choose_arg_or_default<true> {
- typedef choose_default type;
- };
-#endif
-
- template <class Arg, class DefaultGen, class Base, class Traits>
- class resolve_default {
-#if defined(__BORLANDC__)
- typedef typename choose_arg_or_default<typename is_default<Arg>::type>::type Selector;
-#else
- // This usually works for Borland, but I'm seeing weird errors in
- // iterator_adaptor_test.cpp when using this method.
- enum { is_def = is_default<Arg>::value };
- typedef typename choose_arg_or_default<is_def>::type Selector;
-#endif
- public:
- typedef typename Selector
- ::template select<Arg, DefaultGen, Base, Traits>::type type;
- };
-
- // To differentiate an unnamed parameter from a traits generator
- // we use is_convertible<X, iter_traits_gen_base>.
- struct named_template_param_base { };
-
- template <class X>
- struct is_named_param_list {
- enum { value = is_convertible<X, named_template_param_base>::value };
- };
-
- struct choose_named_params {
- template <class Prev> struct select { typedef Prev type; };
- };
- struct choose_default_arg {
- template <class Prev> struct select {
- typedef detail::default_argument type;
- };
- };
-
- template <bool Named> struct choose_default_dispatch_;
- template <> struct choose_default_dispatch_<true> {
- typedef choose_named_params type;
- };
- template <> struct choose_default_dispatch_<false> {
- typedef choose_default_arg type;
- };
- // The use of inheritance here is a Solaris Forte 6 workaround.
- template <bool Named> struct choose_default_dispatch
- : public choose_default_dispatch_<Named> { };
-
- template <class PreviousArg>
- struct choose_default_argument {
- enum { is_named = is_named_param_list<PreviousArg>::value };
- typedef typename choose_default_dispatch<is_named>::type Selector;
- typedef typename Selector::template select<PreviousArg>::type type;
- };
-
- // This macro assumes that there is a class named default_##TYPE
- // defined before the application of the macro. This class should
- // have a single member class template named "select" with two
- // template parameters: the type of the class being created (e.g.,
- // the iterator_adaptor type when creating iterator adaptors) and
- // a traits class. The select class should have a single typedef
- // named "type" that produces the default for TYPE. See
- // boost/iterator_adaptors.hpp for an example usage. Also,
- // applications of this macro must be placed in namespace
- // boost::detail.
-
-#define BOOST_NAMED_TEMPLATE_PARAM(TYPE) \
- struct get_##TYPE##_from_named { \
- template <class Base, class NamedParams, class Traits> \
- struct select { \
- typedef typename NamedParams::traits NamedTraits; \
- typedef typename NamedTraits::TYPE TYPE; \
- typedef typename resolve_default<TYPE, \
- default_##TYPE, Base, NamedTraits>::type type; \
- }; \
- }; \
- struct pass_thru_##TYPE { \
- template <class Base, class Arg, class Traits> struct select { \
- typedef typename resolve_default<Arg, \
- default_##TYPE, Base, Traits>::type type; \
- };\
- }; \
- template <int NamedParam> \
- struct get_##TYPE##_dispatch { }; \
- template <> struct get_##TYPE##_dispatch<1> { \
- typedef get_##TYPE##_from_named type; \
- }; \
- template <> struct get_##TYPE##_dispatch<0> { \
- typedef pass_thru_##TYPE type; \
- }; \
- template <class Base, class X, class Traits> \
- class get_##TYPE { \
- enum { is_named = is_named_param_list<X>::value }; \
- typedef typename get_##TYPE##_dispatch<is_named>::type Selector; \
- public: \
- typedef typename Selector::template select<Base, X, Traits>::type type; \
- }; \
- template <> struct default_generator<default_##TYPE> { \
- typedef default_##TYPE type; \
- }
-
-
- } // namespace detail
-} // namespace boost
-
-#endif // BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP
+++ /dev/null
-#ifndef BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
-#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-//----------------------------------------------------------------------
-// (C) Copyright 2004 Pavel Vozenilek.
-// 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 contains helper macros used when exception support may be
-// disabled (as indicated by macro BOOST_NO_EXCEPTIONS).
-//
-// Before picking up these macros you may consider using RAII techniques
-// to deal with exceptions - their syntax can be always the same with
-// or without exception support enabled.
-//
-
-/* Example of use:
-
-void foo() {
- BOOST_TRY {
- ...
- } BOOST_CATCH(const std::bad_alloc&) {
- ...
- BOOST_RETHROW
- } BOOST_CATCH(const std::exception& e) {
- ...
- }
- BOOST_CATCH_END
-}
-
-With exception support enabled it will expand into:
-
-void foo() {
- { try {
- ...
- } catch (const std::bad_alloc&) {
- ...
- throw;
- } catch (const std::exception& e) {
- ...
- }
- }
-}
-
-With exception support disabled it will expand into:
-
-void foo() {
- { if(true) {
- ...
- } else if (false) {
- ...
- } else if (false) {
- ...
- }
- }
-}
-*/
-//----------------------------------------------------------------------
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if !(defined BOOST_NO_EXCEPTIONS)
-# define BOOST_TRY { try
-# define BOOST_CATCH(x) catch(x)
-# define BOOST_RETHROW throw;
-# define BOOST_CATCH_END }
-#else
-# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-# define BOOST_TRY { if ("")
-# define BOOST_CATCH(x) else if (!"")
-# else
-# define BOOST_TRY { if (true)
-# define BOOST_CATCH(x) else if (false)
-# endif
-# define BOOST_RETHROW
-# define BOOST_CATCH_END }
-#endif
-
-
-#endif
+++ /dev/null
-// Copyright (C) 2003, 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_DETAIL_NONE_T_17SEP2003_HPP
-#define BOOST_DETAIL_NONE_T_17SEP2003_HPP
-
-namespace boost {
-
-namespace detail {
-
-struct none_helper{};
-
-typedef int none_helper::*none_t ;
-
-} // namespace detail
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-// (C) Copyright David Abrahams 2001, Howard Hinnant 2001.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Template class numeric_traits<Number> --
-//
-// Supplies:
-//
-// typedef difference_type -- a type used to represent the difference
-// between any two values of Number.
-//
-// Support:
-// 1. Not all specializations are supplied
-//
-// 2. Use of specializations that are not supplied will cause a
-// compile-time error
-//
-// 3. Users are free to specialize numeric_traits for any type.
-//
-// 4. Right now, specializations are only supplied for integer types.
-//
-// 5. On implementations which do not supply compile-time constants in
-// std::numeric_limits<>, only specializations for built-in integer types
-// are supplied.
-//
-// 6. Handling of numbers whose range of representation is at least as
-// great as boost::intmax_t can cause some differences to be
-// unrepresentable in difference_type:
-//
-// Number difference_type
-// ------ ---------------
-// signed Number
-// unsigned intmax_t
-//
-// template <class Number> typename numeric_traits<Number>::difference_type
-// numeric_distance(Number x, Number y)
-// computes (y - x), attempting to avoid overflows.
-//
-
-// See http://www.boost.org for most recent version including documentation.
-
-// Revision History
-// 11 Feb 2001 - Use BOOST_STATIC_CONSTANT (David Abrahams)
-// 11 Feb 2001 - Rolled back ineffective Borland-specific code
-// (David Abrahams)
-// 10 Feb 2001 - Rolled in supposed Borland fixes from John Maddock, but
-// not seeing any improvement yet (David Abrahams)
-// 06 Feb 2001 - Factored if_true out into boost/detail/select_type.hpp
-// (David Abrahams)
-// 23 Jan 2001 - Fixed logic of difference_type selection, which was
-// completely wack. In the process, added digit_traits<>
-// to compute the number of digits in intmax_t even when
-// not supplied by numeric_limits<>. (David Abrahams)
-// 21 Jan 2001 - Created (David Abrahams)
-
-#ifndef BOOST_NUMERIC_TRAITS_HPP_DWA20001901
-# define BOOST_NUMERIC_TRAITS_HPP_DWA20001901
-
-# include <boost/config.hpp>
-# include <boost/cstdint.hpp>
-# include <boost/static_assert.hpp>
-# include <boost/type_traits.hpp>
-# include <boost/detail/select_type.hpp>
-# include <boost/limits.hpp>
-
-namespace boost { namespace detail {
-
- // Template class is_signed -- determine whether a numeric type is signed
- // Requires that T is constructable from the literals -1 and 0. Compile-time
- // error results if that requirement is not met (and thus signedness is not
- // likely to have meaning for that type).
- template <class Number>
- struct is_signed
- {
-#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- BOOST_STATIC_CONSTANT(bool, value = (Number(-1) < Number(0)));
-#else
- BOOST_STATIC_CONSTANT(bool, value = std::numeric_limits<Number>::is_signed);
-#endif
- };
-
-# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- // digit_traits - compute the number of digits in a built-in integer
- // type. Needed for implementations on which numeric_limits is not specialized
- // for intmax_t (e.g. VC6).
- template <bool is_specialized> struct digit_traits_select;
-
- // numeric_limits is specialized; just select that version of digits
- template <> struct digit_traits_select<true>
- {
- template <class T> struct traits
- {
- BOOST_STATIC_CONSTANT(int, digits = std::numeric_limits<T>::digits);
- };
- };
-
- // numeric_limits is not specialized; compute digits from sizeof(T)
- template <> struct digit_traits_select<false>
- {
- template <class T> struct traits
- {
- BOOST_STATIC_CONSTANT(int, digits = (
- sizeof(T) * std::numeric_limits<unsigned char>::digits
- - (is_signed<T>::value ? 1 : 0))
- );
- };
- };
-
- // here's the "usable" template
- template <class T> struct digit_traits
- {
- typedef digit_traits_select<
- ::std::numeric_limits<T>::is_specialized> selector;
- typedef typename selector::template traits<T> traits;
- BOOST_STATIC_CONSTANT(int, digits = traits::digits);
- };
-#endif
-
- // Template class integer_traits<Integer> -- traits of various integer types
- // This should probably be rolled into boost::integer_traits one day, but I
- // need it to work without <limits>
- template <class Integer>
- struct integer_traits
- {
-# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- private:
- typedef Integer integer_type;
- typedef std::numeric_limits<integer_type> x;
-# if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- // for some reason, MSVC asserts when it shouldn't unless we make these
- // local definitions
- BOOST_STATIC_CONSTANT(bool, is_integer = x::is_integer);
- BOOST_STATIC_CONSTANT(bool, is_specialized = x::is_specialized);
-
- BOOST_STATIC_ASSERT(is_integer);
- BOOST_STATIC_ASSERT(is_specialized);
-# endif
- public:
- typedef typename
- if_true<(int(x::is_signed)
- && (!int(x::is_bounded)
- // digits is the number of no-sign bits
- || (int(x::digits) + 1 >= digit_traits<boost::intmax_t>::digits)))>::template then<
- Integer,
-
- typename if_true<(int(x::digits) + 1 < digit_traits<signed int>::digits)>::template then<
- signed int,
-
- typename if_true<(int(x::digits) + 1 < digit_traits<signed long>::digits)>::template then<
- signed long,
-
- // else
- intmax_t
- >::type>::type>::type difference_type;
-#else
- BOOST_STATIC_ASSERT(boost::is_integral<Integer>::value);
-
- typedef typename
- if_true<(sizeof(Integer) >= sizeof(intmax_t))>::template then<
-
- typename if_true<(is_signed<Integer>::value)>::template then<
- Integer,
- intmax_t
- >::type,
-
- typename if_true<(sizeof(Integer) < sizeof(std::ptrdiff_t))>::template then<
- std::ptrdiff_t,
- intmax_t
- >::type
- >::type difference_type;
-# endif
- };
-
- // Right now, only supports integers, but should be expanded.
- template <class Number>
- struct numeric_traits
- {
- typedef typename integer_traits<Number>::difference_type difference_type;
- };
-
- template <class Number>
- typename numeric_traits<Number>::difference_type numeric_distance(Number x, Number y)
- {
- typedef typename numeric_traits<Number>::difference_type difference_type;
- return difference_type(y) - difference_type(x);
- }
-}}
-
-#endif // BOOST_NUMERIC_TRAITS_HPP_DWA20001901
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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/utility for most recent version including documentation.
-//
-// Crippled version for crippled compilers:
-// see libs/utility/call_traits.htm
-//
-
-/* Release notes:
- 01st October 2000:
- Fixed call_traits on VC6, using "poor man's partial specialisation",
- using ideas taken from "Generative programming" by Krzysztof Czarnecki
- & Ulrich Eisenecker.
-*/
-
-#ifndef BOOST_OB_CALL_TRAITS_HPP
-#define BOOST_OB_CALL_TRAITS_HPP
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-
-#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP
-#include <boost/type_traits/arithmetic_traits.hpp>
-#endif
-#ifndef BOOST_COMPOSITE_TYPE_TRAITS_HPP
-#include <boost/type_traits/composite_traits.hpp>
-#endif
-
-namespace boost{
-
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
-//
-// use member templates to emulate
-// partial specialisation:
-//
-namespace detail{
-
-template <class T>
-struct standard_call_traits
-{
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef const T& param_type;
-};
-template <class T>
-struct simple_call_traits
-{
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef const T param_type;
-};
-template <class T>
-struct reference_call_traits
-{
- typedef T value_type;
- typedef T reference;
- typedef T const_reference;
- typedef T param_type;
-};
-
-template <bool pointer, bool arithmetic, bool reference>
-struct call_traits_chooser
-{
- template <class T>
- struct rebind
- {
- typedef standard_call_traits<T> type;
- };
-};
-
-template <>
-struct call_traits_chooser<true, false, false>
-{
- template <class T>
- struct rebind
- {
- typedef simple_call_traits<T> type;
- };
-};
-
-template <>
-struct call_traits_chooser<false, false, true>
-{
- template <class T>
- struct rebind
- {
- typedef reference_call_traits<T> type;
- };
-};
-
-template <bool size_is_small>
-struct call_traits_sizeof_chooser2
-{
- template <class T>
- struct small_rebind
- {
- typedef simple_call_traits<T> small_type;
- };
-};
-
-template<>
-struct call_traits_sizeof_chooser2<false>
-{
- template <class T>
- struct small_rebind
- {
- typedef standard_call_traits<T> small_type;
- };
-};
-
-template <>
-struct call_traits_chooser<false, true, false>
-{
- template <class T>
- struct rebind
- {
- enum { sizeof_choice = (sizeof(T) <= sizeof(void*)) };
- typedef call_traits_sizeof_chooser2<(sizeof(T) <= sizeof(void*))> chooser;
- typedef typename chooser::template small_rebind<T> bound_type;
- typedef typename bound_type::small_type type;
- };
-};
-
-} // namespace detail
-template <typename T>
-struct call_traits
-{
-private:
- typedef detail::call_traits_chooser<
- ::boost::is_pointer<T>::value,
- ::boost::is_arithmetic<T>::value,
- ::boost::is_reference<T>::value
- > chooser;
- typedef typename chooser::template rebind<T> bound_type;
- typedef typename bound_type::type call_traits_type;
-public:
- typedef typename call_traits_type::value_type value_type;
- typedef typename call_traits_type::reference reference;
- typedef typename call_traits_type::const_reference const_reference;
- typedef typename call_traits_type::param_type param_type;
-};
-
-#else
-//
-// sorry call_traits is completely non-functional
-// blame your broken compiler:
-//
-
-template <typename T>
-struct call_traits
-{
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef const T& param_type;
-};
-
-#endif // member templates
-
-}
-
-#endif // BOOST_OB_CALL_TRAITS_HPP
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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/utility for most recent version including documentation.
-// see libs/utility/compressed_pair.hpp
-//
-/* Release notes:
- 20 Jan 2001:
- Fixed obvious bugs (David Abrahams)
- 07 Oct 2000:
- Added better single argument constructor support.
- 03 Oct 2000:
- Added VC6 support (JM).
- 23rd July 2000:
- Additional comments added. (JM)
- Jan 2000:
- Original version: this version crippled for use with crippled compilers
- - John Maddock Jan 2000.
-*/
-
-
-#ifndef BOOST_OB_COMPRESSED_PAIR_HPP
-#define BOOST_OB_COMPRESSED_PAIR_HPP
-
-#include <algorithm>
-#ifndef BOOST_OBJECT_TYPE_TRAITS_HPP
-#include <boost/type_traits/object_traits.hpp>
-#endif
-#ifndef BOOST_SAME_TRAITS_HPP
-#include <boost/type_traits/same_traits.hpp>
-#endif
-#ifndef BOOST_CALL_TRAITS_HPP
-#include <boost/call_traits.hpp>
-#endif
-
-namespace boost
-{
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
-//
-// use member templates to emulate
-// partial specialisation. Note that due to
-// problems with overload resolution with VC6
-// each of the compressed_pair versions that follow
-// have one template single-argument constructor
-// in place of two specific constructors:
-//
-
-template <class T1, class T2>
-class compressed_pair;
-
-namespace detail{
-
-template <class A, class T1, class T2>
-struct best_conversion_traits
-{
- typedef char one;
- typedef char (&two)[2];
- static A a;
- static one test(T1);
- static two test(T2);
-
- enum { value = sizeof(test(a)) };
-};
-
-template <int>
-struct init_one;
-
-template <>
-struct init_one<1>
-{
- template <class A, class T1, class T2>
- static void init(const A& a, T1* p1, T2*)
- {
- *p1 = a;
- }
-};
-
-template <>
-struct init_one<2>
-{
- template <class A, class T1, class T2>
- static void init(const A& a, T1*, T2* p2)
- {
- *p2 = a;
- }
-};
-
-
-// T1 != T2, both non-empty
-template <class T1, class T2>
-class compressed_pair_0
-{
-private:
- T1 _first;
- T2 _second;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_0() : _first(), _second() {}
- compressed_pair_0(first_param_type x, second_param_type y) : _first(x), _second(y) {}
- template <class A>
- explicit compressed_pair_0(const A& val)
- {
- init_one<best_conversion_traits<A, T1, T2>::value>::init(val, &_first, &_second);
- }
- compressed_pair_0(const ::boost::compressed_pair<T1,T2>& x)
- : _first(x.first()), _second(x.second()) {}
-
-#if 0
- compressed_pair_0& operator=(const compressed_pair_0& x) {
- cout << "assigning compressed pair 0" << endl;
- _first = x._first;
- _second = x._second;
- cout << "finished assigning compressed pair 0" << endl;
- return *this;
- }
-#endif
-
- first_reference first() { return _first; }
- first_const_reference first() const { return _first; }
-
- second_reference second() { return _second; }
- second_const_reference second() const { return _second; }
-
- void swap(compressed_pair_0& y)
- {
- using std::swap;
- swap(_first, y._first);
- swap(_second, y._second);
- }
-};
-
-// T1 != T2, T2 empty
-template <class T1, class T2>
-class compressed_pair_1 : T2
-{
-private:
- T1 _first;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_1() : T2(), _first() {}
- compressed_pair_1(first_param_type x, second_param_type y) : T2(y), _first(x) {}
-
- template <class A>
- explicit compressed_pair_1(const A& val)
- {
- init_one<best_conversion_traits<A, T1, T2>::value>::init(val, &_first, static_cast<T2*>(this));
- }
-
- compressed_pair_1(const ::boost::compressed_pair<T1,T2>& x)
- : T2(x.second()), _first(x.first()) {}
-
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- // Total weirdness. If the assignment to _first is moved after
- // the call to the inherited operator=, then this breaks graph/test/graph.cpp
- // by way of iterator_adaptor.
- compressed_pair_1& operator=(const compressed_pair_1& x) {
- _first = x._first;
- T2::operator=(x);
- return *this;
- }
-#endif
-
- first_reference first() { return _first; }
- first_const_reference first() const { return _first; }
-
- second_reference second() { return *this; }
- second_const_reference second() const { return *this; }
-
- void swap(compressed_pair_1& y)
- {
- // no need to swap empty base class:
- using std::swap;
- swap(_first, y._first);
- }
-};
-
-// T1 != T2, T1 empty
-template <class T1, class T2>
-class compressed_pair_2 : T1
-{
-private:
- T2 _second;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_2() : T1(), _second() {}
- compressed_pair_2(first_param_type x, second_param_type y) : T1(x), _second(y) {}
- template <class A>
- explicit compressed_pair_2(const A& val)
- {
- init_one<best_conversion_traits<A, T1, T2>::value>::init(val, static_cast<T1*>(this), &_second);
- }
- compressed_pair_2(const ::boost::compressed_pair<T1,T2>& x)
- : T1(x.first()), _second(x.second()) {}
-
-#if 0
- compressed_pair_2& operator=(const compressed_pair_2& x) {
- cout << "assigning compressed pair 2" << endl;
- T1::operator=(x);
- _second = x._second;
- cout << "finished assigning compressed pair 2" << endl;
- return *this;
- }
-#endif
- first_reference first() { return *this; }
- first_const_reference first() const { return *this; }
-
- second_reference second() { return _second; }
- second_const_reference second() const { return _second; }
-
- void swap(compressed_pair_2& y)
- {
- // no need to swap empty base class:
- using std::swap;
- swap(_second, y._second);
- }
-};
-
-// T1 != T2, both empty
-template <class T1, class T2>
-class compressed_pair_3 : T1, T2
-{
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_3() : T1(), T2() {}
- compressed_pair_3(first_param_type x, second_param_type y) : T1(x), T2(y) {}
- template <class A>
- explicit compressed_pair_3(const A& val)
- {
- init_one<best_conversion_traits<A, T1, T2>::value>::init(val, static_cast<T1*>(this), static_cast<T2*>(this));
- }
- compressed_pair_3(const ::boost::compressed_pair<T1,T2>& x)
- : T1(x.first()), T2(x.second()) {}
-
- first_reference first() { return *this; }
- first_const_reference first() const { return *this; }
-
- second_reference second() { return *this; }
- second_const_reference second() const { return *this; }
-
- void swap(compressed_pair_3& y)
- {
- // no need to swap empty base classes:
- }
-};
-
-// T1 == T2, and empty
-template <class T1, class T2>
-class compressed_pair_4 : T1
-{
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_4() : T1() {}
- compressed_pair_4(first_param_type x, second_param_type y) : T1(x), m_second(y) {}
- // only one single argument constructor since T1 == T2
- explicit compressed_pair_4(first_param_type x) : T1(x), m_second(x) {}
- compressed_pair_4(const ::boost::compressed_pair<T1,T2>& x)
- : T1(x.first()), m_second(x.second()) {}
-
- first_reference first() { return *this; }
- first_const_reference first() const { return *this; }
-
- second_reference second() { return m_second; }
- second_const_reference second() const { return m_second; }
-
- void swap(compressed_pair_4& y)
- {
- // no need to swap empty base classes:
- }
-private:
- T2 m_second;
-};
-
-// T1 == T2, not empty
-template <class T1, class T2>
-class compressed_pair_5
-{
-private:
- T1 _first;
- T2 _second;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_5() : _first(), _second() {}
- compressed_pair_5(first_param_type x, second_param_type y) : _first(x), _second(y) {}
- // only one single argument constructor since T1 == T2
- explicit compressed_pair_5(first_param_type x) : _first(x), _second(x) {}
- compressed_pair_5(const ::boost::compressed_pair<T1,T2>& c)
- : _first(c.first()), _second(c.second()) {}
-
- first_reference first() { return _first; }
- first_const_reference first() const { return _first; }
-
- second_reference second() { return _second; }
- second_const_reference second() const { return _second; }
-
- void swap(compressed_pair_5& y)
- {
- using std::swap;
- swap(_first, y._first);
- swap(_second, y._second);
- }
-};
-
-template <bool e1, bool e2, bool same>
-struct compressed_pair_chooser
-{
- template <class T1, class T2>
- struct rebind
- {
- typedef compressed_pair_0<T1, T2> type;
- };
-};
-
-template <>
-struct compressed_pair_chooser<false, true, false>
-{
- template <class T1, class T2>
- struct rebind
- {
- typedef compressed_pair_1<T1, T2> type;
- };
-};
-
-template <>
-struct compressed_pair_chooser<true, false, false>
-{
- template <class T1, class T2>
- struct rebind
- {
- typedef compressed_pair_2<T1, T2> type;
- };
-};
-
-template <>
-struct compressed_pair_chooser<true, true, false>
-{
- template <class T1, class T2>
- struct rebind
- {
- typedef compressed_pair_3<T1, T2> type;
- };
-};
-
-template <>
-struct compressed_pair_chooser<true, true, true>
-{
- template <class T1, class T2>
- struct rebind
- {
- typedef compressed_pair_4<T1, T2> type;
- };
-};
-
-template <>
-struct compressed_pair_chooser<false, false, true>
-{
- template <class T1, class T2>
- struct rebind
- {
- typedef compressed_pair_5<T1, T2> type;
- };
-};
-
-template <class T1, class T2>
-struct compressed_pair_traits
-{
-private:
- typedef compressed_pair_chooser<is_empty<T1>::value, is_empty<T2>::value, is_same<T1,T2>::value> chooser;
- typedef typename chooser::template rebind<T1, T2> bound_type;
-public:
- typedef typename bound_type::type type;
-};
-
-} // namespace detail
-
-template <class T1, class T2>
-class compressed_pair : public detail::compressed_pair_traits<T1, T2>::type
-{
-private:
- typedef typename detail::compressed_pair_traits<T1, T2>::type base_type;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair() : base_type() {}
- compressed_pair(first_param_type x, second_param_type y) : base_type(x, y) {}
- template <class A>
- explicit compressed_pair(const A& x) : base_type(x){}
-
- first_reference first() { return base_type::first(); }
- first_const_reference first() const { return base_type::first(); }
-
- second_reference second() { return base_type::second(); }
- second_const_reference second() const { return base_type::second(); }
-};
-
-template <class T1, class T2>
-inline void swap(compressed_pair<T1, T2>& x, compressed_pair<T1, T2>& y)
-{
- x.swap(y);
-}
-
-#else
-// no partial specialisation, no member templates:
-
-template <class T1, class T2>
-class compressed_pair
-{
-private:
- T1 _first;
- T2 _second;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair() : _first(), _second() {}
- compressed_pair(first_param_type x, second_param_type y) : _first(x), _second(y) {}
- explicit compressed_pair(first_param_type x) : _first(x), _second() {}
- // can't define this in case T1 == T2:
- // explicit compressed_pair(second_param_type y) : _first(), _second(y) {}
-
- first_reference first() { return _first; }
- first_const_reference first() const { return _first; }
-
- second_reference second() { return _second; }
- second_const_reference second() const { return _second; }
-
- void swap(compressed_pair& y)
- {
- using std::swap;
- swap(_first, y._first);
- swap(_second, y._second);
- }
-};
-
-template <class T1, class T2>
-inline void swap(compressed_pair<T1, T2>& x, compressed_pair<T1, T2>& y)
-{
- x.swap(y);
-}
-
-#endif
-
-} // boost
-
-#endif // BOOST_OB_COMPRESSED_PAIR_HPP
-
-
-
+++ /dev/null
-#ifndef BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-#define BOOST_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/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;
-#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;
-#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_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
+++ /dev/null
-//-----------------------------------------------------------------------------
-// boost detail/reference_content.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the 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_DETAIL_REFERENCE_CONTENT_HPP
-#define BOOST_DETAIL_REFERENCE_CONTENT_HPP
-
-#include "boost/config.hpp"
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include "boost/mpl/bool.hpp"
-# include "boost/type_traits/has_nothrow_copy.hpp"
-#else
-# include "boost/mpl/if.hpp"
-# include "boost/type_traits/is_reference.hpp"
-#endif
-
-#include "boost/mpl/void.hpp"
-
-namespace boost {
-
-namespace detail {
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) class template reference_content
-//
-// Non-Assignable wrapper for references.
-//
-template <typename RefT>
-class reference_content
-{
-private: // representation
-
- RefT content_;
-
-public: // structors
-
- ~reference_content()
- {
- }
-
- reference_content(RefT r)
- : content_( r )
- {
- }
-
- reference_content(const reference_content& operand)
- : content_( operand.content_ )
- {
- }
-
-private: // non-Assignable
-
- reference_content& operator=(const reference_content&);
-
-public: // queries
-
- RefT get() const
- {
- return content_;
- }
-
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) metafunction make_reference_content
-//
-// Wraps with reference_content if specified type is reference.
-//
-
-template <typename T = mpl::void_> struct make_reference_content;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
-{
- typedef T type;
-};
-
-template <typename T>
-struct make_reference_content< T& >
-{
- typedef reference_content<T&> type;
-};
-
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
- : mpl::if_<
- is_reference<T>
- , reference_content<T>
- , T
- >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
-
-template <>
-struct make_reference_content< mpl::void_ >
-{
- template <typename T>
- struct apply
- : make_reference_content<T>
- {
- };
-
- typedef mpl::void_ type;
-};
-
-} // namespace detail
-
-///////////////////////////////////////////////////////////////////////////////
-// reference_content<T&> type traits specializations
-//
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct has_nothrow_copy<
- ::boost::detail::reference_content< T& >
- >
- : mpl::true_
-{
-};
-
-#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-} // namespace boost
-
-#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2001.
-// Distributed under the 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 including documentation.
-
-// Revision History
-// 09 Feb 01 Applied John Maddock's Borland patch Moving <true>
-// specialization to unspecialized template (David Abrahams)
-// 06 Feb 01 Created (David Abrahams)
-
-#ifndef SELECT_TYPE_DWA20010206_HPP
-# define SELECT_TYPE_DWA20010206_HPP
-
-namespace boost { namespace detail {
-
- // Template class if_true -- select among 2 types based on a bool constant expression
- // Usage:
- // typename if_true<(bool_const_expression)>::template then<true_type, false_type>::type
-
- // HP aCC cannot deal with missing names for template value parameters
- template <bool b> struct if_true
- {
- template <class T, class F>
- struct then { typedef T type; };
- };
-
- template <>
- struct if_true<false>
- {
- template <class T, class F>
- struct then { typedef F type; };
- };
-}}
-#endif // SELECT_TYPE_DWA20010206_HPP
+++ /dev/null
-#ifndef BOOST_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
-#define BOOST_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/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_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED
-#define BOOST_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/detail/bad_weak_ptr.hpp>
-#include <boost/detail/sp_counted_base.hpp>
-#include <boost/detail/sp_counted_impl.hpp>
-
-#include <memory> // std::auto_ptr, std::allocator
-#include <functional> // std::less
-#include <new> // std::bad_alloc
-#include <typeinfo> // std::type_info in get_deleter
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-
-int const shared_count_id = 0x2C35F101;
-int const weak_count_id = 0x298C38A4;
-
-#endif
-
-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
- }
-
- template<class P, class D> shared_count(P p, D d): pi_(0)
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
- , id_(shared_count_id)
-#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
- }
-
-#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();
- }
-
- explicit shared_count(weak_count const & r); // throws bad_weak_ptr 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;
- }
-
- 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(std::type_info 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_(shared_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_(shared_count_id)
-#endif
- {
- if(pi_ != 0) pi_->weak_add_ref();
- }
-
- ~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 != 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 != 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;
- }
-
- 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() );
- }
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#ifdef __BORLANDC__
-# pragma warn .8027 // Functions containing try are not expanded inline
-#endif
-
-#endif // #ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
-#define BOOST_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/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_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
-#define BOOST_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 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_DISABLE_THREADS )
-
-# include <boost/detail/sp_counted_base_nt.hpp>
-
-#elif defined( BOOST_SP_USE_PTHREADS )
-
-# include <boost/detail/sp_counted_base_pt.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
-
-# include <boost/detail/sp_counted_base_gcc_x86.hpp>
-
-//~ #elif defined( __MWERKS__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
-
-//~ # include <boost/detail/sp_counted_base_cw_x86.hpp>
-
-#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER )
-
-# include <boost/detail/sp_counted_base_gcc_ia64.hpp>
-
-#elif defined( __MWERKS__ ) && defined( __POWERPC__ )
-
-# include <boost/detail/sp_counted_base_cw_ppc.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) )
-
-# include <boost/detail/sp_counted_base_gcc_ppc.hpp>
-
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-
-# include <boost/detail/sp_counted_base_w32.hpp>
-
-#elif !defined( BOOST_HAS_THREADS )
-
-# include <boost/detail/sp_counted_base_nt.hpp>
-
-#elif defined( BOOST_HAS_PTHREADS )
-
-# include <boost/detail/sp_counted_base_pt.hpp>
-
-#else
-
-// Use #define BOOST_DISABLE_THREADS to avoid the error
-# error Unrecognized threading platform
-
-#endif
-
-#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-
-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( std::type_info 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_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-
-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( std::type_info 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_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
-#define BOOST_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-2005 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 <typeinfo>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( long * pw )
-{
- // ++*pw;
-
- long 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__ ("fetchadd8.rel %0=[%2],1" :
- "=r"(tmp), "=m"(*pw) :
- "r"(pw));
-}
-
-inline long atomic_decrement( long * pw )
-{
- // return --*pw;
-
- long rv;
-
- __asm__ (" fetchadd8.rel %0=[%2],-1 ;; \n"
- " cmp.eq p7,p0=1,%0 ;; \n"
- "(p7) ld8.acq %0=[%2] " :
- "=&r"(rv), "=m"(*pw) :
- "r"(pw) :
- "p7");
-
- return rv;
-}
-
-inline long atomic_conditional_increment( long * pw )
-{
- // if( *pw != 0 ) ++*pw;
- // return *pw;
-
- long rv, tmp, tmp2;
-
- __asm__ ("0: ld8 %0=[%4] ;; \n"
- " cmp.eq p7,p0=0,%0 ;; \n"
- "(p7) br.cond.spnt 1f \n"
- " mov ar.ccv=%0 \n"
- " add %1=1,%0 ;; \n"
- " cmpxchg8.acq %2=[%4],%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) :
- "r"(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 & );
-
- 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( std::type_info 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_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-
-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 ):
- "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 ):
- "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 ):
- "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( std::type_info 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_PPC_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-
-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( std::type_info 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_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-
-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( std::type_info 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_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-#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( std::type_info 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_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
-#define BOOST_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 <typeinfo>
-
-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( std::type_info 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( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;
- }
- }
-
- 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_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
-#define BOOST_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/detail/sp_counted_base.hpp>
-
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
-#include <boost/detail/quick_allocator.hpp>
-#endif
-
-#include <memory> // std::allocator
-#include <typeinfo> // std::type_info in get_deleter
-#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( std::type_info 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( std::type_info const & ti )
- {
- return ti == typeid(D)? &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
-};
-
-#ifdef __CODEGUARD__
-# pragma option pop
-#endif
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
+++ /dev/null
-//-----------------------------------------------------------------------------
-// boost detail/templated_streams.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the 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_DETAIL_TEMPLATED_STREAMS_HPP
-#define BOOST_DETAIL_TEMPLATED_STREAMS_HPP
-
-#include "boost/config.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) BOOST_TEMPLATED_STREAM_* macros
-//
-// Provides workaround platforms without stream class templates.
-//
-
-#if !defined(BOOST_NO_STD_LOCALE)
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) \
- template < typename E , typename T >
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) \
- template < typename E , typename T , typename A >
-
-#define BOOST_TEMPLATED_STREAM_ARGS(E,T) \
- typename E , typename T
-
-#define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) \
- typename E , typename T , typename A
-
-#define BOOST_TEMPLATED_STREAM_COMMA ,
-
-#define BOOST_TEMPLATED_STREAM_ELEM(E) E
-#define BOOST_TEMPLATED_STREAM_TRAITS(T) T
-#define BOOST_TEMPLATED_STREAM_ALLOC(A) A
-
-#define BOOST_TEMPLATED_STREAM(X,E,T) \
- BOOST_JOIN(std::basic_,X)< E , T >
-
-#define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \
- BOOST_JOIN(std::basic_,X)< E , T , A >
-
-#else // defined(BOOST_NO_STD_LOCALE)
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) /**/
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) /**/
-
-#define BOOST_TEMPLATED_STREAM_ARGS(E,T) /**/
-
-#define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) /**/
-
-#define BOOST_TEMPLATED_STREAM_COMMA /**/
-
-#define BOOST_TEMPLATED_STREAM_ELEM(E) char
-#define BOOST_TEMPLATED_STREAM_TRAITS(T) std::char_traits<char>
-#define BOOST_TEMPLATED_STREAM_ALLOC(A) std::allocator<char>
-
-#define BOOST_TEMPLATED_STREAM(X,E,T) \
- std::X
-
-#define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \
- std::X
-
-#endif // BOOST_NO_STD_LOCALE
-
-#endif // BOOST_DETAIL_TEMPLATED_STREAMS_HPP
+++ /dev/null
-// Copyright © 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
-// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). Permission to copy,
-// use, modify, sell and distribute this software is granted provided this
-// copyright notice appears in all copies. This software is provided "as is"
-// without express or implied warranty, and with no claim as to its suitability
-// for any purpose.
-
-#ifndef BOOST_UTF8_CODECVT_FACET_HPP
-#define BOOST_UTF8_CODECVT_FACET_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// utf8_codecvt_facet.hpp
-
-// This header defines class utf8_codecvt_facet, derived fro
-// std::codecvt<wchar_t, char>, which can be used to convert utf8 data in
-// files into wchar_t strings in the application.
-//
-// The header is NOT STANDALONE, and is not to be included by the USER.
-// There are at least two libraries which want to use this functionality, and
-// we want to avoid code duplication. It would be possible to create utf8
-// library, but:
-// - this requires review process first
-// - in the case, when linking the a library which uses utf8
-// (say 'program_options'), user should also link to the utf8 library.
-// This seems inconvenient, and asking a user to link to an unrevieved
-// library is strange.
-// Until the above points are fixed, a library which wants to use utf8 must:
-// - include this header from one of it's headers or sources
-// - include the corresponding .cpp file from one of the sources
-// - before including either file, the library must define
-// - BOOST_UTF8_BEGIN_NAMESPACE to the namespace declaration that must be used
-// - BOOST_UTF8_END_NAMESPACE to the code to close the previous namespace
-// - declaration.
-// - BOOST_UTF8_DECL -- to the code which must be used for all 'exportable'
-// symbols.
-//
-// For example, program_options library might contain:
-// #define BOOST_UTF8_BEGIN_NAMESPACE <backslash character>
-// namespace boost { namespace program_options {
-// #define BOOST_UTF8_END_NAMESPACE }}
-// #define BOOST_UTF8_DECL BOOST_PROGRAM_OPTIONS_DECL
-// #include "../../detail/utf8/utf8_codecvt.cpp"
-//
-// Essentially, each library will have its own copy of utf8 code, in
-// different namespaces.
-
-// Note:(Robert Ramey). I have made the following alterations in the original
-// code.
-// a) Rendered utf8_codecvt<wchar_t, char> with using templates
-// b) Move longer functions outside class definition to prevent inlining
-// and make code smaller
-// c) added on a derived class to permit translation to/from current
-// locale to utf8
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-// archives stored as text - note these ar templated on the basic
-// stream templates to accommodate wide (and other?) kind of characters
-//
-// note the fact that on libraries without wide characters, ostream is
-// is not a specialization of basic_ostream which in fact is not defined
-// in such cases. So we can't use basic_ostream<OStream::char_type> but rather
-// use two template parameters
-//
-// utf8_codecvt_facet
-// This is an implementation of a std::codecvt facet for translating
-// from UTF-8 externally to UCS-4. Note that this is not tied to
-// any specific types in order to allow customization on platforms
-// where wchar_t is not big enough.
-//
-// NOTES: The current implementation jumps through some unpleasant hoops in
-// order to deal with signed character types. As a std::codecvt_base::result,
-// it is necessary for the ExternType to be convertible to unsigned char.
-// I chose not to tie the extern_type explicitly to char. But if any combination
-// of types other than <wchar_t,char_t> is used, then std::codecvt must be
-// specialized on those types for this to work.
-
-#include <locale>
-// for mbstate_t
-#include <wchar.h>
-// for std::size_t
-#include <cstddef>
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace std {
- #if defined(__LIBCOMO__)
- using ::mbstate_t;
- #elif defined(BOOST_DINKUMWARE_STDLIB)
- using ::mbstate_t;
- #elif defined(__SGI_STL_PORT)
- #elif defined(BOOST_NO_STDC_NAMESPACE)
- using ::mbstate_t;
- using ::codecvt;
- #endif
-} // namespace std
-
-#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__)
- #define BOOST_CODECVT_DO_LENGTH_CONST const
-#else
- #define BOOST_CODECVT_DO_LENGTH_CONST
-#endif
-
-// maximum lenght of a multibyte string
-#define MB_LENGTH_MAX 8
-
-BOOST_UTF8_BEGIN_NAMESPACE
-
-struct BOOST_UTF8_DECL utf8_codecvt_facet :
- public std::codecvt<wchar_t, char, std::mbstate_t>
-{
-public:
- explicit utf8_codecvt_facet(std::size_t no_locale_manage=0)
- : std::codecvt<wchar_t, char, std::mbstate_t>(no_locale_manage)
- {}
-protected:
- virtual std::codecvt_base::result do_in(
- std::mbstate_t& state,
- const char * from,
- const char * from_end,
- const char * & from_next,
- wchar_t * to,
- wchar_t * to_end,
- wchar_t*& to_next
- ) const;
-
- virtual std::codecvt_base::result do_out(
- std::mbstate_t & state, const wchar_t * from,
- const wchar_t * from_end, const wchar_t* & from_next,
- char * to, char * to_end, char * & to_next
- ) const;
-
- bool invalid_continuing_octet(unsigned char octet_1) const {
- return (octet_1 < 0x80|| 0xbf< octet_1);
- }
-
- bool invalid_leading_octet(unsigned char octet_1) const {
- return (0x7f < octet_1 && octet_1 < 0xc0) ||
- (octet_1 > 0xfd);
- }
-
- // continuing octets = octets except for the leading octet
- static unsigned int get_cont_octet_count(unsigned char lead_octet) {
- return get_octet_count(lead_octet) - 1;
- }
-
- static unsigned int get_octet_count(unsigned char lead_octet);
-
- // How many "continuing octets" will be needed for this word
- // == total octets - 1.
- int get_cont_octet_out_count(wchar_t word) const ;
-
- virtual bool do_always_noconv() const throw() { return false; }
-
- // UTF-8 isn't really stateful since we rewind on partial conversions
- virtual std::codecvt_base::result do_unshift(
- std::mbstate_t&,
- char * from,
- char * to,
- char * & next
- ) const
- {
- next = from;
- return ok;
- }
-
- virtual int do_encoding() const throw() {
- const int variable_byte_external_encoding=0;
- return variable_byte_external_encoding;
- }
-
- // How many char objects can I process to get <= max_limit
- // wchar_t objects?
- virtual int do_length(
- BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &,
- const char * from,
- const char * from_end,
- std::size_t max_limit
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
- ) const throw();
-#else
- ) const;
-#endif
-
- // Largest possible value do_length(state,from,from_end,1) could return.
- virtual int do_max_length() const throw () {
- return 6; // largest UTF-8 encoding of a UCS-4 character
- }
-};
-
-BOOST_UTF8_END_NAMESPACE
-
-#endif // BOOST_UTF8_CODECVT_FACET_HPP
+++ /dev/null
-// Copyright David Abrahams 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 WORKAROUND_DWA2002126_HPP
-# define WORKAROUND_DWA2002126_HPP
-
-// Compiler/library version workaround macro
-//
-// Usage:
-//
-// #if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-// ... // workaround code here
-// #endif
-//
-// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
-// first argument must be undefined or expand to a numeric
-// value. The above expands to:
-//
-// (BOOST_MSVC) != 0 && (BOOST_MSVC) <= 1200
-//
-// When used for workarounds that apply to the latest known version
-// and all earlier versions of a compiler, the following convention
-// should be observed:
-//
-// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
-//
-// The version number in this case corresponds to the last version in
-// which the workaround was known to have been required. When
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
-// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
-// the workaround for any version of the compiler. When
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
-// error will be issued if the compiler version exceeds the argument
-// to BOOST_TESTED_AT(). This can be used to locate workarounds which
-// may be obsoleted by newer versions.
-
-# ifndef BOOST_STRICT_CONFIG
-
-# define BOOST_WORKAROUND(symbol, test) \
- ((symbol != 0) && (1 % (( (symbol test) ) + 1)))
-// ^ ^ ^ ^
-// The extra level of parenthesis nesting above, along with the
-// BOOST_OPEN_PAREN indirection below, is required to satisfy the
-// broken preprocessor in MWCW 8.3 and earlier.
-//
-// The basic mechanism works as follows:
-// (symbol test) + 1 => if (symbol test) then 2 else 1
-// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0
-//
-// The complication with % is for cooperation with BOOST_TESTED_AT().
-// When "test" is BOOST_TESTED_AT(x) and
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
-//
-// symbol test => if (symbol <= x) then 1 else -1
-// (symbol test) + 1 => if (symbol <= x) then 2 else 0
-// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero
-//
-
-# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
-# define BOOST_OPEN_PAREN (
-# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
-# else
-# define BOOST_TESTED_AT(value) != ((value)-(value))
-# endif
-
-# else
-
-# define BOOST_WORKAROUND(symbol, test) 0
-
-# endif
-
-#endif // WORKAROUND_DWA2002126_HPP
+++ /dev/null
-// --------------------------------------------------
-//
-// (C) Copyright Chuck Allison and Jeremy Siek 2001 - 2002.
-// (C) Copyright Gennaro Prota 2003 - 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)
-//
-// -----------------------------------------------------------
-
-// See http://www.boost.org/libs/dynamic_bitset for documentation.
-
-#ifndef BOOST_DYNAMIC_BITSET_HPP
-#define BOOST_DYNAMIC_BITSET_HPP
-
-#include "boost/dynamic_bitset/dynamic_bitset.hpp"
-
-#endif // include guard
+++ /dev/null
-// --------------------------------------------------
-//
-// (C) Copyright Chuck Allison and Jeremy Siek 2001 - 2002.
-// (C) Copyright Gennaro Prota 2003 - 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)
-//
-// -----------------------------------------------------------
-
-// See http://www.boost.org/libs/dynamic_bitset for documentation.
-
-
-#ifndef BOOST_DYNAMIC_BITSET_FWD_HPP
-#define BOOST_DYNAMIC_BITSET_FWD_HPP
-
-#include <memory>
-
-namespace boost {
-
-template <typename Block = unsigned long,
- typename Allocator = std::allocator<Block> >
-class dynamic_bitset;
-
-} // namespace boost
-
-#endif // include guard
+++ /dev/null
-#ifndef DYNAMIC_PROPERTY_MAP_RG09302004_HPP
-#define DYNAMIC_PROPERTY_MAP_RG09302004_HPP
-
-// Copyright 2004-5 The Trustees of Indiana University.
-
-// 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)
-
-// dynamic_property_map.hpp -
-// Support for runtime-polymorphic property maps. This header is factored
-// out of Doug Gregor's routines for reading GraphML files for use in reading
-// GraphViz graph files.
-
-// Authors: Doug Gregor
-// Ronald Garcia
-//
-
-
-#include <boost/config.hpp>
-#include <boost/property_map.hpp>
-#include <boost/lexical_cast.hpp>
-#include <boost/any.hpp>
-#include <boost/function/function3.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <typeinfo>
-#include <boost/mpl/bool.hpp>
-#include <stdexcept>
-#include <sstream>
-#include <map>
-#include <boost/type.hpp>
-
-namespace boost {
-
-namespace detail {
-
- // read_value -
- // A wrapper around lexical_cast, which does not behave as
- // desired for std::string types.
- template<typename Value>
- inline Value read_value(const std::string& value)
- { return boost::lexical_cast<Value>(value); }
-
- template<>
- inline std::string read_value<std::string>(const std::string& value)
- { return value; }
-
-}
-
-
-// dynamic_property_map -
-// This interface supports polymorphic manipulation of property maps.
-class dynamic_property_map
-{
-public:
- virtual ~dynamic_property_map() { }
-
- virtual boost::any get(const any& key) = 0;
- virtual std::string get_string(const any& key) = 0;
- virtual void put(const any& key, const any& value) = 0;
- virtual const std::type_info& key() const = 0;
- virtual const std::type_info& value() const = 0;
-};
-
-
-//////////////////////////////////////////////////////////////////////
-// Property map exceptions
-//////////////////////////////////////////////////////////////////////
-
-struct dynamic_property_exception : public std::exception {
- virtual ~dynamic_property_exception() throw() {}
- virtual const char* what() const throw() = 0;
-};
-
-struct property_not_found : public dynamic_property_exception {
- std::string property;
- mutable std::string statement;
- property_not_found(const std::string& property) : property(property) {}
- virtual ~property_not_found() throw() {}
-
- const char* what() const throw() {
- if(statement.empty())
- statement =
- std::string("Property not found: ") + property + ".";
-
- return statement.c_str();
- }
-};
-
-struct dynamic_get_failure : public dynamic_property_exception {
- std::string property;
- mutable std::string statement;
- dynamic_get_failure(const std::string& property) : property(property) {}
- virtual ~dynamic_get_failure() throw() {}
-
- const char* what() const throw() {
- if(statement.empty())
- statement =
- std::string(
- "dynamic property get cannot retrieve value for property: ")
- + property + ".";
-
- return statement.c_str();
- }
-};
-
-struct dynamic_const_put_error : public dynamic_property_exception {
- virtual ~dynamic_const_put_error() throw() {}
-
- const char* what() const throw() {
- return "Attempt to put a value into a const property map: ";
- }
-};
-
-
-namespace detail {
-
-//
-// dynamic_property_map_adaptor -
-// property-map adaptor to support runtime polymorphism.
-template<typename PropertyMap>
-class dynamic_property_map_adaptor : public dynamic_property_map
-{
- typedef typename property_traits<PropertyMap>::key_type key_type;
- typedef typename property_traits<PropertyMap>::value_type value_type;
- typedef typename property_traits<PropertyMap>::category category;
-
- // do_put - overloaded dispatches from the put() member function.
- // Attempts to "put" to a property map that does not model
- // WritablePropertyMap result in a runtime exception.
-
- // in_value must either hold an object of value_type or a string that
- // can be converted to value_type via iostreams.
- void do_put(const any& in_key, const any& in_value, mpl::bool_<true>)
- {
-#if !(defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95))
- using boost::put;
-#endif
-
- key_type key = any_cast<key_type>(in_key);
- if (in_value.type() == typeid(value_type)) {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map, key, any_cast<value_type>(in_value));
-#else
- put(property_map, key, any_cast<value_type>(in_value));
-#endif
- } else {
- // if in_value is an empty string, put a default constructed value_type.
- std::string v = any_cast<std::string>(in_value);
- if (v.empty()) {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map, key, value_type());
-#else
- put(property_map, key, value_type());
-#endif
- } else {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map, key, detail::read_value<value_type>(v));
-#else
- put(property_map, key, detail::read_value<value_type>(v));
-#endif
- }
- }
- }
-
- void do_put(const any&, const any&, mpl::bool_<false>)
- {
- throw dynamic_const_put_error();
- }
-
-public:
- explicit dynamic_property_map_adaptor(const PropertyMap& property_map)
- : property_map(property_map) { }
-
- virtual boost::any get(const any& key)
- {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- return boost::get(property_map, any_cast<key_type>(key));
-#else
- using boost::get;
-
- return get(property_map, any_cast<key_type>(key));
-#endif
- }
-
- virtual std::string get_string(const any& key)
- {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- std::ostringstream out;
- out << boost::get(property_map, any_cast<key_type>(key));
- return out.str();
-#else
- using boost::get;
-
- std::ostringstream out;
- out << get(property_map, any_cast<key_type>(key));
- return out.str();
-#endif
- }
-
- virtual void put(const any& in_key, const any& in_value)
- {
- do_put(in_key, in_value,
- mpl::bool_<(is_convertible<category*,
- writable_property_map_tag*>::value)>());
- }
-
- virtual const std::type_info& key() const { return typeid(key_type); }
- virtual const std::type_info& value() const { return typeid(value_type); }
-
- PropertyMap& base() { return property_map; }
- const PropertyMap& base() const { return property_map; }
-
-private:
- PropertyMap property_map;
-};
-
-} // namespace detail
-
-//
-// dynamic_properties -
-// container for dynamic property maps
-//
-struct dynamic_properties
-{
- typedef std::multimap<std::string, dynamic_property_map*>
- property_maps_type;
- typedef boost::function3<std::auto_ptr<dynamic_property_map>,
- const std::string&,
- const boost::any&,
- const boost::any&> generate_fn_type;
-public:
-
- typedef property_maps_type::iterator iterator;
- typedef property_maps_type::const_iterator const_iterator;
-
- dynamic_properties() : generate_fn() { }
- dynamic_properties(const generate_fn_type& g) : generate_fn(g) {}
-
- ~dynamic_properties()
- {
- for (property_maps_type::iterator i = property_maps.begin();
- i != property_maps.end(); ++i) {
- delete i->second;
- }
- }
-
- template<typename PropertyMap>
- dynamic_properties&
- property(const std::string& name, PropertyMap property_map)
- {
- // Tbd: exception safety
- std::auto_ptr<dynamic_property_map> pm(
- new detail::dynamic_property_map_adaptor<PropertyMap>(property_map));
- property_maps_type::iterator i =
- property_maps.insert(property_maps_type::value_type(name, 0));
- i->second = pm.release();
-
- return *this;
- }
-
- iterator begin() { return property_maps.begin(); }
- const_iterator begin() const { return property_maps.begin(); }
- iterator end() { return property_maps.end(); }
- const_iterator end() const { return property_maps.end(); }
-
- iterator lower_bound(const std::string& name)
- { return property_maps.lower_bound(name); }
-
- const_iterator lower_bound(const std::string& name) const
- { return property_maps.lower_bound(name); }
-
- void
- insert(const std::string& name, std::auto_ptr<dynamic_property_map> pm)
- {
- property_maps.insert(property_maps_type::value_type(name, pm.release()));
- }
-
- template<typename Key, typename Value>
- std::auto_ptr<dynamic_property_map>
- generate(const std::string& name, const Key& key, const Value& value)
- {
- if(!generate_fn) {
- throw property_not_found(name);
- } else {
- return generate_fn(name,key,value);
- }
- }
-
-private:
- property_maps_type property_maps;
- generate_fn_type generate_fn;
-};
-
-template<typename Key, typename Value>
-bool
-put(const std::string& name, dynamic_properties& dp, const Key& key,
- const Value& value)
-{
- for (dynamic_properties::iterator i = dp.lower_bound(name);
- i != dp.end() && i->first == name; ++i) {
- if (i->second->key() == typeid(key)) {
- i->second->put(key, value);
- return true;
- }
- }
-
- std::auto_ptr<dynamic_property_map> new_map = dp.generate(name, key, value);
- if (new_map.get()) {
- new_map->put(key, value);
- dp.insert(name, new_map);
- return true;
- } else {
- return false;
- }
-}
-
-#ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-template<typename Value, typename Key>
-Value
-get(const std::string& name, const dynamic_properties& dp, const Key& key)
-{
- for (dynamic_properties::const_iterator i = dp.lower_bound(name);
- i != dp.end() && i->first == name; ++i) {
- if (i->second->key() == typeid(key))
- return any_cast<Value>(i->second->get(key));
- }
-
- throw dynamic_get_failure(name);
-}
-#endif
-
-template<typename Value, typename Key>
-Value
-get(const std::string& name, const dynamic_properties& dp, const Key& key, type<Value>)
-{
- for (dynamic_properties::const_iterator i = dp.lower_bound(name);
- i != dp.end() && i->first == name; ++i) {
- if (i->second->key() == typeid(key))
- return any_cast<Value>(i->second->get(key));
- }
-
- throw dynamic_get_failure(name);
-}
-
-template<typename Key>
-std::string
-get(const std::string& name, const dynamic_properties& dp, const Key& key)
-{
- for (dynamic_properties::const_iterator i = dp.lower_bound(name);
- i != dp.end() && i->first == name; ++i) {
- if (i->second->key() == typeid(key))
- return i->second->get_string(key);
- }
-
- throw dynamic_get_failure(name);
-}
-
-
-}
-
-#endif // DYNAMIC_PROPERTY_MAP_RG09302004_HPP
+++ /dev/null
-#ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
-#define BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
-
-//
-// enable_shared_from_this.hpp
-//
-// Copyright (c) 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/enable_shared_from_this.html
-//
-
-#include <boost/weak_ptr.hpp>
-#include <boost/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(_internal_weak_this);
- BOOST_ASSERT(p.get() == this);
- return p;
- }
-
- shared_ptr<T const> shared_from_this() const
- {
- shared_ptr<T const> p(_internal_weak_this);
- BOOST_ASSERT(p.get() == this);
- return p;
- }
-
- typedef T _internal_element_type; // for bcc 5.5.1
- mutable weak_ptr<_internal_element_type> _internal_weak_this;
-};
-
-} // namespace boost
-
-#endif // #ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
+++ /dev/null
-// ----------------------------------------------------------------------------
-// format.hpp : primary header
-// ----------------------------------------------------------------------------
-
-// Copyright Samuel Krempp 2003. Use, modification, and distribution are
-// subject to the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/format for library home page
-
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_HPP
-#define BOOST_FORMAT_HPP
-
-#include <vector>
-#include <string>
-#include <boost/detail/workaround.hpp>
-#include <boost/config.hpp>
-
-#ifndef BOOST_NO_STD_LOCALE
-#include <locale>
-#endif
-
-// *** Compatibility framework
-#include <boost/format/detail/compat_workarounds.hpp>
-
-#ifdef BOOST_NO_LOCALE_ISIDIGIT
-#include <cctype> // we'll use the non-locale <cctype>'s std::isdigit(int)
-#endif
-
-// **** Forward declarations ----------------------------------
-#include <boost/format/format_fwd.hpp> // basic_format<Ch,Tr>, and other frontends
-#include <boost/format/internals_fwd.hpp> // misc forward declarations for internal use
-
-// **** Auxiliary structs (stream_format_state<Ch,Tr> , and format_item<Ch,Tr> )
-#include <boost/format/internals.hpp>
-
-// **** Format class interface --------------------------------
-#include <boost/format/format_class.hpp>
-
-// **** Exceptions -----------------------------------------------
-#include <boost/format/exceptions.hpp>
-
-// **** Implementation -------------------------------------------
-#include <boost/format/format_implementation.hpp> // member functions
-#include <boost/format/group.hpp> // class for grouping arguments
-#include <boost/format/feed_args.hpp> // argument-feeding functions
-#include <boost/format/parsing.hpp> // format-string parsing (member-)functions
-
-// **** Implementation of the free functions ----------------------
-#include <boost/format/free_funcs.hpp>
-
-
-// *** Undefine 'local' macros :
-#include <boost/format/detail/unset_macros.hpp>
-
-#endif // BOOST_FORMAT_HPP
+++ /dev/null
-// Boost.Function library
-
-// Copyright Douglas Gregor 2001-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)
-
-// For more information, see http://www.boost.org/libs/function
-
-// William Kempf, Jesse Jones and Karl Nelson were all very helpful in the
-// design of this library.
-
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_FUNCTION_MAX_ARGS
-# define BOOST_FUNCTION_MAX_ARGS 10
-#endif // BOOST_FUNCTION_MAX_ARGS
-
-// Include the prologue here so that the use of file-level iteration
-// in anything that may be included by function_template.hpp doesn't break
-#include <boost/function/detail/prologue.hpp>
-
-// Visual Age C++ doesn't handle the file iteration well
-#if BOOST_WORKAROUND(__IBMCPP__, >= 500)
-# if BOOST_FUNCTION_MAX_ARGS >= 0
-# include <boost/function/function0.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 1
-# include <boost/function/function1.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 2
-# include <boost/function/function2.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 3
-# include <boost/function/function3.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 4
-# include <boost/function/function4.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 5
-# include <boost/function/function5.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 6
-# include <boost/function/function6.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 7
-# include <boost/function/function7.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 8
-# include <boost/function/function8.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 9
-# include <boost/function/function9.hpp>
-# endif
-# if BOOST_FUNCTION_MAX_ARGS >= 10
-# include <boost/function/function10.hpp>
-# endif
-#else
-// What is the '3' for?
-# define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_FUNCTION_MAX_ARGS,<boost/function/detail/function_iterate.hpp>))
-# include BOOST_PP_ITERATE()
-# undef BOOST_PP_ITERATION_PARAMS_1
-#endif
+++ /dev/null
-// Copyright Douglas Gregor 2004.
-// Copyright 2005 Peter Dimov
-
-// 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_EQUAL_HPP
-#define BOOST_FUNCTION_EQUAL_HPP
-
-namespace boost {
-
-template<typename F, typename G>
- bool function_equal_impl(const F& f, const G& g, long)
- { return f == g; }
-
-// function_equal_impl needs to be unqualified to pick
-// user overloads on two-phase compilers
-
-template<typename F, typename G>
- bool function_equal(const F& f, const G& g)
- { return function_equal_impl(f, g, 0); }
-
-} // end namespace boost
-
-#endif // BOOST_FUNCTION_EQUAL_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// Revision History:
-
-// 27 Feb 2001 Jeremy Siek
-// Initial checkin.
-
-#ifndef BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
-#define BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
-
-#include <iterator>
-
-namespace boost {
-
- template <class UnaryFunction>
- class function_output_iterator {
- typedef function_output_iterator self;
- public:
- typedef std::output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- explicit function_output_iterator() {}
-
- explicit function_output_iterator(const UnaryFunction& f)
- : m_f(f) {}
-
- struct output_proxy {
- output_proxy(UnaryFunction& f) : m_f(f) { }
- template <class T> output_proxy& operator=(const T& value) {
- m_f(value);
- return *this;
- }
- UnaryFunction& m_f;
- };
- output_proxy operator*() { return output_proxy(m_f); }
- self& operator++() { return *this; }
- self& operator++(int) { return *this; }
- private:
- UnaryFunction m_f;
- };
-
- template <class UnaryFunction>
- inline function_output_iterator<UnaryFunction>
- make_function_output_iterator(const UnaryFunction& f = UnaryFunction()) {
- return function_output_iterator<UnaryFunction>(f);
- }
-
-} // namespace boost
-
-#endif // BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
+++ /dev/null
-// ------------------------------------------------------------------------------
-// Boost functional.hpp header file
-// See http://www.boost.org/libs/functional for documentation.
-// ------------------------------------------------------------------------------
-// Copyright (c) 2000
-// Cadenza New Zealand Ltd
-//
-// Permission to use, copy, modify, distribute and sell this software
-// and its documentation for any purpose is hereby granted without
-// fee, provided that the above copyright notice appears in all copies
-// and that both the copyright notice and this permission notice
-// appear in supporting documentation. Cadenza New Zealand Ltd makes
-// no representations about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied
-// warranty.
-// ------------------------------------------------------------------------------
-// $Id$
-// ------------------------------------------------------------------------------
-
-#ifndef BOOST_FUNCTIONAL_HPP
-#define BOOST_FUNCTIONAL_HPP
-
-#include <boost/config.hpp>
-#include <boost/call_traits.hpp>
-#include <functional>
-
-namespace boost
-{
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // --------------------------------------------------------------------------
- // The following traits classes allow us to avoid the need for ptr_fun
- // because the types of arguments and the result of a function can be
- // deduced.
- //
- // In addition to the standard types defined in unary_function and
- // binary_function, we add
- //
- // - function_type, the type of the function or function object itself.
- //
- // - param_type, the type that should be used for passing the function or
- // function object as an argument.
- // --------------------------------------------------------------------------
- namespace detail
- {
- template <class Operation>
- struct unary_traits_imp;
-
- template <class Operation>
- struct unary_traits_imp<Operation*>
- {
- typedef Operation function_type;
- typedef const function_type & param_type;
- typedef typename Operation::result_type result_type;
- typedef typename Operation::argument_type argument_type;
- };
-
- template <class R, class A>
- struct unary_traits_imp<R(*)(A)>
- {
- typedef R (*function_type)(A);
- typedef R (*param_type)(A);
- typedef R result_type;
- typedef A argument_type;
- };
-
- template <class Operation>
- struct binary_traits_imp;
-
- template <class Operation>
- struct binary_traits_imp<Operation*>
- {
- typedef Operation function_type;
- typedef const function_type & param_type;
- typedef typename Operation::result_type result_type;
- typedef typename Operation::first_argument_type first_argument_type;
- typedef typename Operation::second_argument_type second_argument_type;
- };
-
- template <class R, class A1, class A2>
- struct binary_traits_imp<R(*)(A1,A2)>
- {
- typedef R (*function_type)(A1,A2);
- typedef R (*param_type)(A1,A2);
- typedef R result_type;
- typedef A1 first_argument_type;
- typedef A2 second_argument_type;
- };
- } // namespace detail
-
- template <class Operation>
- struct unary_traits
- {
- typedef typename detail::unary_traits_imp<Operation*>::function_type function_type;
- typedef typename detail::unary_traits_imp<Operation*>::param_type param_type;
- typedef typename detail::unary_traits_imp<Operation*>::result_type result_type;
- typedef typename detail::unary_traits_imp<Operation*>::argument_type argument_type;
- };
-
- template <class R, class A>
- struct unary_traits<R(*)(A)>
- {
- typedef R (*function_type)(A);
- typedef R (*param_type)(A);
- typedef R result_type;
- typedef A argument_type;
- };
-
- template <class Operation>
- struct binary_traits
- {
- typedef typename detail::binary_traits_imp<Operation*>::function_type function_type;
- typedef typename detail::binary_traits_imp<Operation*>::param_type param_type;
- typedef typename detail::binary_traits_imp<Operation*>::result_type result_type;
- typedef typename detail::binary_traits_imp<Operation*>::first_argument_type first_argument_type;
- typedef typename detail::binary_traits_imp<Operation*>::second_argument_type second_argument_type;
- };
-
- template <class R, class A1, class A2>
- struct binary_traits<R(*)(A1,A2)>
- {
- typedef R (*function_type)(A1,A2);
- typedef R (*param_type)(A1,A2);
- typedef R result_type;
- typedef A1 first_argument_type;
- typedef A2 second_argument_type;
- };
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // --------------------------------------------------------------------------
- // If we have no partial specialisation available, decay to a situation
- // that is no worse than in the Standard, i.e., ptr_fun will be required.
- // --------------------------------------------------------------------------
-
- template <class Operation>
- struct unary_traits
- {
- typedef Operation function_type;
- typedef const Operation& param_type;
- typedef typename Operation::result_type result_type;
- typedef typename Operation::argument_type argument_type;
- };
-
- template <class Operation>
- struct binary_traits
- {
- typedef Operation function_type;
- typedef const Operation & param_type;
- typedef typename Operation::result_type result_type;
- typedef typename Operation::first_argument_type first_argument_type;
- typedef typename Operation::second_argument_type second_argument_type;
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // --------------------------------------------------------------------------
- // unary_negate, not1
- // --------------------------------------------------------------------------
- template <class Predicate>
- class unary_negate
- : public std::unary_function<typename unary_traits<Predicate>::argument_type,bool>
- {
- public:
- explicit unary_negate(typename unary_traits<Predicate>::param_type x)
- :
- pred(x)
- {}
- bool operator()(typename call_traits<typename unary_traits<Predicate>::argument_type>::param_type x) const
- {
- return !pred(x);
- }
- private:
- typename unary_traits<Predicate>::function_type pred;
- };
-
- template <class Predicate>
- unary_negate<Predicate> not1(const Predicate &pred)
- {
- // The cast is to placate Borland C++Builder in certain circumstances.
- // I don't think it should be necessary.
- return unary_negate<Predicate>((typename unary_traits<Predicate>::param_type)pred);
- }
-
- template <class Predicate>
- unary_negate<Predicate> not1(Predicate &pred)
- {
- return unary_negate<Predicate>(pred);
- }
-
- // --------------------------------------------------------------------------
- // binary_negate, not2
- // --------------------------------------------------------------------------
- template <class Predicate>
- class binary_negate
- : public std::binary_function<typename binary_traits<Predicate>::first_argument_type,
- typename binary_traits<Predicate>::second_argument_type,
- bool>
- {
- public:
- explicit binary_negate(typename binary_traits<Predicate>::param_type x)
- :
- pred(x)
- {}
- bool operator()(typename call_traits<typename binary_traits<Predicate>::first_argument_type>::param_type x,
- typename call_traits<typename binary_traits<Predicate>::second_argument_type>::param_type y) const
- {
- return !pred(x,y);
- }
- private:
- typename binary_traits<Predicate>::function_type pred;
- };
-
- template <class Predicate>
- binary_negate<Predicate> not2(const Predicate &pred)
- {
- // The cast is to placate Borland C++Builder in certain circumstances.
- // I don't think it should be necessary.
- return binary_negate<Predicate>((typename binary_traits<Predicate>::param_type)pred);
- }
-
- template <class Predicate>
- binary_negate<Predicate> not2(Predicate &pred)
- {
- return binary_negate<Predicate>(pred);
- }
-
- // --------------------------------------------------------------------------
- // binder1st, bind1st
- // --------------------------------------------------------------------------
- template <class Operation>
- class binder1st
- : public std::unary_function<typename binary_traits<Operation>::second_argument_type,
- typename binary_traits<Operation>::result_type>
- {
- public:
- binder1st(typename binary_traits<Operation>::param_type x,
- typename call_traits<typename binary_traits<Operation>::first_argument_type>::param_type y)
- :
- op(x), value(y)
- {}
-
- typename binary_traits<Operation>::result_type
- operator()(typename call_traits<typename binary_traits<Operation>::second_argument_type>::param_type x) const
- {
- return op(value, x);
- }
-
- protected:
- typename binary_traits<Operation>::function_type op;
- typename binary_traits<Operation>::first_argument_type value;
- };
-
- template <class Operation>
- inline binder1st<Operation> bind1st(const Operation &op,
- typename call_traits<
- typename binary_traits<Operation>::first_argument_type
- >::param_type x)
- {
- // The cast is to placate Borland C++Builder in certain circumstances.
- // I don't think it should be necessary.
- return binder1st<Operation>((typename binary_traits<Operation>::param_type)op, x);
- }
-
- template <class Operation>
- inline binder1st<Operation> bind1st(Operation &op,
- typename call_traits<
- typename binary_traits<Operation>::first_argument_type
- >::param_type x)
- {
- return binder1st<Operation>(op, x);
- }
-
- // --------------------------------------------------------------------------
- // binder2nd, bind2nd
- // --------------------------------------------------------------------------
- template <class Operation>
- class binder2nd
- : public std::unary_function<typename binary_traits<Operation>::first_argument_type,
- typename binary_traits<Operation>::result_type>
- {
- public:
- binder2nd(typename binary_traits<Operation>::param_type x,
- typename call_traits<typename binary_traits<Operation>::second_argument_type>::param_type y)
- :
- op(x), value(y)
- {}
-
- typename binary_traits<Operation>::result_type
- operator()(typename call_traits<typename binary_traits<Operation>::first_argument_type>::param_type x) const
- {
- return op(x, value);
- }
-
- protected:
- typename binary_traits<Operation>::function_type op;
- typename binary_traits<Operation>::second_argument_type value;
- };
-
- template <class Operation>
- inline binder2nd<Operation> bind2nd(const Operation &op,
- typename call_traits<
- typename binary_traits<Operation>::second_argument_type
- >::param_type x)
- {
- // The cast is to placate Borland C++Builder in certain circumstances.
- // I don't think it should be necessary.
- return binder2nd<Operation>((typename binary_traits<Operation>::param_type)op, x);
- }
-
- template <class Operation>
- inline binder2nd<Operation> bind2nd(Operation &op,
- typename call_traits<
- typename binary_traits<Operation>::second_argument_type
- >::param_type x)
- {
- return binder2nd<Operation>(op, x);
- }
-
- // --------------------------------------------------------------------------
- // mem_fun, etc
- // --------------------------------------------------------------------------
- template <class S, class T>
- class mem_fun_t : public std::unary_function<T*, S>
- {
- public:
- explicit mem_fun_t(S (T::*p)())
- :
- ptr(p)
- {}
- S operator()(T* p) const
- {
- return (p->*ptr)();
- }
- private:
- S (T::*ptr)();
- };
-
- template <class S, class T, class A>
- class mem_fun1_t : public std::binary_function<T*, A, S>
- {
- public:
- explicit mem_fun1_t(S (T::*p)(A))
- :
- ptr(p)
- {}
- S operator()(T* p, typename call_traits<A>::param_type x) const
- {
- return (p->*ptr)(x);
- }
- private:
- S (T::*ptr)(A);
- };
-
- template <class S, class T>
- class const_mem_fun_t : public std::unary_function<const T*, S>
- {
- public:
- explicit const_mem_fun_t(S (T::*p)() const)
- :
- ptr(p)
- {}
- S operator()(const T* p) const
- {
- return (p->*ptr)();
- }
- private:
- S (T::*ptr)() const;
- };
-
- template <class S, class T, class A>
- class const_mem_fun1_t : public std::binary_function<const T*, A, S>
- {
- public:
- explicit const_mem_fun1_t(S (T::*p)(A) const)
- :
- ptr(p)
- {}
- S operator()(const T* p, typename call_traits<A>::param_type x) const
- {
- return (p->*ptr)(x);
- }
- private:
- S (T::*ptr)(A) const;
- };
-
- template<class S, class T>
- inline mem_fun_t<S,T> mem_fun(S (T::*f)())
- {
- return mem_fun_t<S,T>(f);
- }
-
- template<class S, class T, class A>
- inline mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A))
- {
- return mem_fun1_t<S,T,A>(f);
- }
-
-#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
- template<class S, class T>
- inline const_mem_fun_t<S,T> mem_fun(S (T::*f)() const)
- {
- return const_mem_fun_t<S,T>(f);
- }
-
- template<class S, class T, class A>
- inline const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const)
- {
- return const_mem_fun1_t<S,T,A>(f);
- }
-#endif // BOOST_NO_POINTER_TO_MEMBER_CONST
-
- // --------------------------------------------------------------------------
- // mem_fun_ref, etc
- // --------------------------------------------------------------------------
- template <class S, class T>
- class mem_fun_ref_t : public std::unary_function<T&, S>
- {
- public:
- explicit mem_fun_ref_t(S (T::*p)())
- :
- ptr(p)
- {}
- S operator()(T& p) const
- {
- return (p.*ptr)();
- }
- private:
- S (T::*ptr)();
- };
-
- template <class S, class T, class A>
- class mem_fun1_ref_t : public std::binary_function<T&, A, S>
- {
- public:
- explicit mem_fun1_ref_t(S (T::*p)(A))
- :
- ptr(p)
- {}
- S operator()(T& p, typename call_traits<A>::param_type x) const
- {
- return (p.*ptr)(x);
- }
- private:
- S (T::*ptr)(A);
- };
-
- template <class S, class T>
- class const_mem_fun_ref_t : public std::unary_function<const T&, S>
- {
- public:
- explicit const_mem_fun_ref_t(S (T::*p)() const)
- :
- ptr(p)
- {}
-
- S operator()(const T &p) const
- {
- return (p.*ptr)();
- }
- private:
- S (T::*ptr)() const;
- };
-
- template <class S, class T, class A>
- class const_mem_fun1_ref_t : public std::binary_function<const T&, A, S>
- {
- public:
- explicit const_mem_fun1_ref_t(S (T::*p)(A) const)
- :
- ptr(p)
- {}
-
- S operator()(const T& p, typename call_traits<A>::param_type x) const
- {
- return (p.*ptr)(x);
- }
- private:
- S (T::*ptr)(A) const;
- };
-
- template<class S, class T>
- inline mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)())
- {
- return mem_fun_ref_t<S,T>(f);
- }
-
- template<class S, class T, class A>
- inline mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A))
- {
- return mem_fun1_ref_t<S,T,A>(f);
- }
-
-#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
- template<class S, class T>
- inline const_mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)() const)
- {
- return const_mem_fun_ref_t<S,T>(f);
- }
-
- template<class S, class T, class A>
- inline const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const)
- {
- return const_mem_fun1_ref_t<S,T,A>(f);
- }
-#endif // BOOST_NO_POINTER_TO_MEMBER_CONST
-
- // --------------------------------------------------------------------------
- // ptr_fun
- // --------------------------------------------------------------------------
- template <class Arg, class Result>
- class pointer_to_unary_function : public std::unary_function<Arg,Result>
- {
- public:
- explicit pointer_to_unary_function(Result (*f)(Arg))
- :
- func(f)
- {}
-
- Result operator()(typename call_traits<Arg>::param_type x) const
- {
- return func(x);
- }
-
- private:
- Result (*func)(Arg);
- };
-
- template <class Arg, class Result>
- inline pointer_to_unary_function<Arg,Result> ptr_fun(Result (*f)(Arg))
- {
- return pointer_to_unary_function<Arg,Result>(f);
- }
-
- template <class Arg1, class Arg2, class Result>
- class pointer_to_binary_function : public std::binary_function<Arg1,Arg2,Result>
- {
- public:
- explicit pointer_to_binary_function(Result (*f)(Arg1, Arg2))
- :
- func(f)
- {}
-
- Result operator()(typename call_traits<Arg1>::param_type x, typename call_traits<Arg2>::param_type y) const
- {
- return func(x,y);
- }
-
- private:
- Result (*func)(Arg1, Arg2);
- };
-
- template <class Arg1, class Arg2, class Result>
- inline pointer_to_binary_function<Arg1,Arg2,Result> ptr_fun(Result (*f)(Arg1, Arg2))
- {
- return pointer_to_binary_function<Arg1,Arg2,Result>(f);
- }
-} // namespace boost
-
-#endif
+++ /dev/null
-// (C) Copyright Jens Maurer 2001.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Revision History:
-
-// 15 Nov 2001 Jens Maurer
-// created.
-
-// See http://www.boost.org/libs/utility/iterator_adaptors.htm for documentation.
-
-#ifndef BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
-#define BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
-
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/ref.hpp>
-
-namespace boost {
-
-template<class Generator>
-class generator_iterator
- : public iterator_facade<
- generator_iterator<Generator>
- , typename Generator::result_type
- , single_pass_traversal_tag
- , typename Generator::result_type const&
- >
-{
- typedef iterator_facade<
- generator_iterator<Generator>
- , typename Generator::result_type
- , single_pass_traversal_tag
- , typename Generator::result_type const&
- > super_t;
-
- public:
- generator_iterator() {}
- generator_iterator(Generator* g) : m_g(g), m_value((*m_g)()) {}
-
- void increment()
- {
- m_value = (*m_g)();
- }
-
- const typename Generator::result_type&
- dereference() const
- {
- return m_value;
- }
-
- bool equal(generator_iterator const& y) const
- {
- return this->m_g == y.m_g && this->m_value == y.m_value;
- }
-
- private:
- Generator* m_g;
- typename Generator::result_type m_value;
-};
-
-template<class Generator>
-struct generator_iterator_generator
-{
- typedef generator_iterator<Generator> type;
-};
-
-template <class Generator>
-inline generator_iterator<Generator>
-make_generator_iterator(Generator & gen)
-{
- typedef generator_iterator<Generator> result_t;
- return result_t(&gen);
-}
-
-} // namespace boost
-
-
-#endif // BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
-
+++ /dev/null
-// Copyright Peter Dimov and David Abrahams 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 GET_POINTER_DWA20021219_HPP
-# define GET_POINTER_DWA20021219_HPP
-
-# include <memory>
-
-namespace boost {
-
-// get_pointer(p) extracts a ->* capable pointer from p
-
-template<class T> T * get_pointer(T * p)
-{
- return p;
-}
-
-// get_pointer(shared_ptr<T> const & p) has been moved to shared_ptr.hpp
-
-template<class T> T * get_pointer(std::auto_ptr<T> const& p)
-{
- return p.get();
-}
-
-
-} // namespace boost
-
-#endif // GET_POINTER_DWA20021219_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_ADJACENCY_ITERATOR_HPP
-#define BOOST_ADJACENCY_ITERATOR_HPP
-
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/graph/graph_traits.hpp>
-
-namespace boost
-{
-
- template <class Graph, class Vertex, class OutEdgeIter, class Difference>
- struct adjacency_iterator
- : iterator_adaptor<
- adjacency_iterator<Graph,Vertex,OutEdgeIter,Difference>
- , OutEdgeIter
- , Vertex
- , use_default
- , Vertex
- , Difference
- >
- {
- typedef iterator_adaptor<
- adjacency_iterator<Graph,Vertex,OutEdgeIter,Difference>
- , OutEdgeIter
- , Vertex
- , use_default
- , Vertex
- , Difference
- > super_t;
-
- inline adjacency_iterator() {}
- inline adjacency_iterator(OutEdgeIter const& i, const Graph* g) : super_t(i), m_g(g) { }
-
- inline Vertex
- dereference() const
- { return target(*this->base(), *m_g); }
-
- const Graph* m_g;
- };
-
- template <class Graph,
- class Vertex = typename graph_traits<Graph>::vertex_descriptor,
- class OutEdgeIter=typename graph_traits<Graph>::out_edge_iterator>
- class adjacency_iterator_generator
- {
- typedef typename boost::detail::iterator_traits<OutEdgeIter>
- ::difference_type difference_type;
- public:
- typedef adjacency_iterator<Graph,Vertex,OutEdgeIter,difference_type> type;
- };
-
- template <class Graph, class Vertex, class InEdgeIter, class Difference>
- struct inv_adjacency_iterator
- : iterator_adaptor<
- inv_adjacency_iterator<Graph,Vertex,InEdgeIter,Difference>
- , InEdgeIter
- , Vertex
- , use_default
- , Vertex
- , Difference
- >
- {
- typedef iterator_adaptor<
- inv_adjacency_iterator<Graph,Vertex,InEdgeIter,Difference>
- , InEdgeIter
- , Vertex
- , use_default
- , Vertex
- , Difference
- > super_t;
-
- inline inv_adjacency_iterator() { }
- inline inv_adjacency_iterator(InEdgeIter const& i, const Graph* g) : super_t(i), m_g(g) { }
-
- inline Vertex
- dereference() const
- { return source(*this->base(), *m_g); }
-
- const Graph* m_g;
- };
-
- template <class Graph,
- class Vertex = typename graph_traits<Graph>::vertex_descriptor,
- class InEdgeIter = typename graph_traits<Graph>::in_edge_iterator>
- class inv_adjacency_iterator_generator {
- typedef typename boost::detail::iterator_traits<InEdgeIter>
- ::difference_type difference_type;
- public:
- typedef inv_adjacency_iterator<Graph, Vertex, InEdgeIter, difference_type> type;
- };
-
-} // namespace boost
-
-#endif // BOOST_DETAIL_ADJACENCY_ITERATOR_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_ADJACENCY_LIST_HPP
-#define BOOST_GRAPH_ADJACENCY_LIST_HPP
-
-
-#include <boost/config.hpp>
-
-#include <vector>
-#include <list>
-#include <set>
-
-#if !defined BOOST_NO_HASH
-#include <hash_set>
-#endif
-
-#if !defined BOOST_NO_SLIST
-#include <slist>
-#endif
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_selectors.hpp>
-#include <boost/property_map.hpp>
-#include <boost/pending/ct_if.hpp>
-#include <boost/graph/detail/edge.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/graph/properties.hpp>
-
-namespace boost {
-
- //===========================================================================
- // Selectors for the VertexList and EdgeList template parameters of
- // adjacency_list, and the container_gen traits class which is used
- // to map the selectors to the container type used to implement the
- // graph.
- //
- // The main container_gen traits class uses partial specialization,
- // so we also include a workaround.
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if !defined BOOST_NO_SLIST
- struct slistS {};
-#endif
-
- struct vecS { };
- struct listS { };
- struct setS { };
- struct multisetS { };
- struct mapS { };
-#if !defined BOOST_NO_HASH
- struct hash_mapS { };
- struct hash_setS { };
-#endif
-
- template <class Selector, class ValueType>
- struct container_gen { };
-
- template <class ValueType>
- struct container_gen<listS, ValueType> {
- typedef std::list<ValueType> type;
- };
-#if !defined BOOST_NO_SLIST
- template <class ValueType>
- struct container_gen<slistS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::slist<ValueType> type;
- };
-#endif
- template <class ValueType>
- struct container_gen<vecS, ValueType> {
- typedef std::vector<ValueType> type;
- };
-
- template <class ValueType>
- struct container_gen<mapS, ValueType> {
- typedef std::set<ValueType> type;
- };
-
- template <class ValueType>
- struct container_gen<setS, ValueType> {
- typedef std::set<ValueType> type;
- };
-
- template <class ValueType>
- struct container_gen<multisetS, ValueType> {
- typedef std::multiset<ValueType> type;
- };
-
-#if !defined BOOST_NO_HASH
- template <class ValueType>
- struct container_gen<hash_mapS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<ValueType> type;
- };
-
- template <class ValueType>
- struct container_gen<hash_setS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<ValueType> type;
- };
-#endif
-
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if !defined BOOST_NO_SLIST
- struct slistS {
- template <class T>
- struct bind_ { typedef std::slist<T> type; };
- };
-#endif
-
- struct vecS {
- template <class T>
- struct bind_ { typedef std::vector<T> type; };
- };
-
- struct listS {
- template <class T>
- struct bind_ { typedef std::list<T> type; };
- };
-
- struct setS {
- template <class T>
- struct bind_ { typedef std::set<T, std::less<T> > type; };
- };
-
- struct multisetS {
- template <class T>
- struct bind_ { typedef std::multiset<T, std::less<T> > type; };
- };
-
-#if !defined BOOST_NO_HASH
- struct hash_setS {
- template <class T>
- struct bind_ { typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<T, std::less<T> > type; };
- };
-#endif
-
- struct mapS {
- template <class T>
- struct bind_ { typedef std::set<T, std::less<T> > type; };
- };
-
-#if !defined BOOST_NO_HASH
- struct hash_mapS {
- template <class T>
- struct bind_ { typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<T, std::less<T> > type; };
- };
-#endif
-
- template <class Selector> struct container_selector {
- typedef vecS type;
- };
-
-#define BOOST_CONTAINER_SELECTOR(NAME) \
- template <> struct container_selector<NAME> { \
- typedef NAME type; \
- }
-
- BOOST_CONTAINER_SELECTOR(vecS);
- BOOST_CONTAINER_SELECTOR(listS);
- BOOST_CONTAINER_SELECTOR(mapS);
- BOOST_CONTAINER_SELECTOR(setS);
- BOOST_CONTAINER_SELECTOR(multisetS);
-#if !defined BOOST_NO_HASH
- BOOST_CONTAINER_SELECTOR(hash_mapS);
-#endif
-#if !defined BOOST_NO_SLIST
- BOOST_CONTAINER_SELECTOR(slistS);
-#endif
-
- template <class Selector, class ValueType>
- struct container_gen {
- typedef typename container_selector<Selector>::type Select;
- typedef typename Select:: template bind_<ValueType>::type type;
- };
-
-#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <class StorageSelector>
- struct parallel_edge_traits { };
-
- template <>
- struct parallel_edge_traits<vecS> {
- typedef allow_parallel_edge_tag type; };
-
- template <>
- struct parallel_edge_traits<listS> {
- typedef allow_parallel_edge_tag type; };
-
-#if !defined BOOST_NO_SLIST
- template <>
- struct parallel_edge_traits<slistS> {
- typedef allow_parallel_edge_tag type; };
-#endif
-
- template <>
- struct parallel_edge_traits<setS> {
- typedef disallow_parallel_edge_tag type; };
-
- template <>
- struct parallel_edge_traits<multisetS> {
- typedef allow_parallel_edge_tag type; };
-
-#if !defined BOOST_NO_HASH
- template <>
- struct parallel_edge_traits<hash_setS> {
- typedef disallow_parallel_edge_tag type;
- };
-#endif
-
- // mapS is obsolete, replaced with setS
- template <>
- struct parallel_edge_traits<mapS> {
- typedef disallow_parallel_edge_tag type; };
-
-#if !defined BOOST_NO_HASH
- template <>
- struct parallel_edge_traits<hash_mapS> {
- typedef disallow_parallel_edge_tag type;
- };
-#endif
-
- namespace detail {
- template <class Directed> struct is_random_access {
- enum { value = false};
- typedef false_type type;
- };
- template <>
- struct is_random_access<vecS> {
- enum { value = true };
- typedef true_type type;
- };
-
- } // namespace detail
-
-
-
- //===========================================================================
- // The adjacency_list_traits class, which provides a way to access
- // some of the associated types of an adjacency_list type without
- // having to first create the adjacency_list type. This is useful
- // when trying to create interior vertex or edge properties who's
- // value type is a vertex or edge descriptor.
-
- template <class OutEdgeListS = vecS,
- class VertexListS = vecS,
- class DirectedS = directedS>
- struct adjacency_list_traits
- {
- typedef typename detail::is_random_access<VertexListS>::type
- is_rand_access;
- typedef typename DirectedS::is_bidir_t is_bidir;
- typedef typename DirectedS::is_directed_t is_directed;
-
- typedef typename boost::ct_if_t<is_bidir,
- bidirectional_tag,
- typename boost::ct_if_t<is_directed,
- directed_tag, undirected_tag
- >::type
- >::type directed_category;
-
- typedef typename parallel_edge_traits<OutEdgeListS>::type
- edge_parallel_category;
-
- typedef void* vertex_ptr;
- typedef typename boost::ct_if_t<is_rand_access,
- std::size_t, vertex_ptr>::type vertex_descriptor;
- typedef detail::edge_desc_impl<directed_category, vertex_descriptor>
- edge_descriptor;
- };
-
-} // namespace boost
-
-#include <boost/graph/detail/adjacency_list.hpp>
-
-namespace boost {
-
- //===========================================================================
- // The adjacency_list class.
- //
-
- template <class OutEdgeListS = vecS, // a Sequence or an AssociativeContainer
- class VertexListS = vecS, // a Sequence or a RandomAccessContainer
- class DirectedS = directedS,
- class VertexProperty = no_property,
- class EdgeProperty = no_property,
- class GraphProperty = no_property,
- class EdgeListS = listS>
- class adjacency_list
- : public detail::adj_list_gen<
- adjacency_list<OutEdgeListS,VertexListS,DirectedS,
- VertexProperty,EdgeProperty,GraphProperty,EdgeListS>,
- VertexListS, OutEdgeListS, DirectedS,
-#if !defined(BOOST_GRAPH_NO_BUNDLED_PROPERTIES)
- typename detail::retag_property_list<vertex_bundle_t,
- VertexProperty>::type,
- typename detail::retag_property_list<edge_bundle_t, EdgeProperty>::type,
-#else
- VertexProperty, EdgeProperty,
-#endif
- GraphProperty, EdgeListS>::type
- {
-#if !defined(BOOST_GRAPH_NO_BUNDLED_PROPERTIES)
- typedef typename detail::retag_property_list<vertex_bundle_t,
- VertexProperty>::retagged
- maybe_vertex_bundled;
-
- typedef typename detail::retag_property_list<edge_bundle_t,
- EdgeProperty>::retagged
- maybe_edge_bundled;
-#endif
-
- public:
-#if !defined(BOOST_GRAPH_NO_BUNDLED_PROPERTIES)
- typedef typename detail::retag_property_list<vertex_bundle_t,
- VertexProperty>::type
- vertex_property_type;
- typedef typename detail::retag_property_list<edge_bundle_t,
- EdgeProperty>::type
- edge_property_type;
-
- // The types that are actually bundled
- typedef typename ct_if<(is_same<maybe_vertex_bundled, no_property>::value),
- no_vertex_bundle,
- maybe_vertex_bundled>::type vertex_bundled;
- typedef typename ct_if<(is_same<maybe_edge_bundled, no_property>::value),
- no_edge_bundle,
- maybe_edge_bundled>::type edge_bundled;
-#else
- typedef VertexProperty vertex_property_type;
- typedef EdgeProperty edge_property_type;
- typedef no_vertex_bundle vertex_bundled;
- typedef no_edge_bundle edge_bundled;
-#endif
-
- private:
- typedef adjacency_list self;
- typedef typename detail::adj_list_gen<
- self, VertexListS, OutEdgeListS, DirectedS,
- vertex_property_type, edge_property_type, GraphProperty, EdgeListS
- >::type Base;
-
- public:
- typedef typename Base::stored_vertex stored_vertex;
- typedef typename Base::vertices_size_type vertices_size_type;
- typedef typename Base::edges_size_type edges_size_type;
- typedef typename Base::degree_size_type degree_size_type;
- typedef typename Base::vertex_descriptor vertex_descriptor;
- typedef typename Base::edge_descriptor edge_descriptor;
- typedef OutEdgeListS out_edge_list_selector;
- typedef VertexListS vertex_list_selector;
- typedef DirectedS directed_selector;
- typedef EdgeListS edge_list_selector;
-
- typedef GraphProperty graph_property_type;
-
- inline adjacency_list(const GraphProperty& p = GraphProperty())
- : m_property(p) { }
-
- inline adjacency_list(const adjacency_list& x)
- : Base(x), m_property(x.m_property) { }
-
- inline adjacency_list& operator=(const adjacency_list& x) {
- // TBD: probably should give the strong guarantee
- if (&x != this) {
- Base::operator=(x);
- m_property = x.m_property;
- }
- return *this;
- }
-
- // Required by Mutable Graph
- inline adjacency_list(vertices_size_type num_vertices,
- const GraphProperty& p = GraphProperty())
- : Base(num_vertices), m_property(p) { }
-
-#if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
- // Required by Iterator Constructible Graph
- template <class EdgeIterator>
- inline adjacency_list(EdgeIterator first, EdgeIterator last,
- vertices_size_type n,
- edges_size_type = 0,
- const GraphProperty& p = GraphProperty())
- : Base(n, first, last), m_property(p) { }
-
- template <class EdgeIterator, class EdgePropertyIterator>
- inline adjacency_list(EdgeIterator first, EdgeIterator last,
- EdgePropertyIterator ep_iter,
- vertices_size_type n,
- edges_size_type = 0,
- const GraphProperty& p = GraphProperty())
- : Base(n, first, last, ep_iter), m_property(p) { }
-#endif
-
- void swap(adjacency_list& x) {
- // Is there a more efficient way to do this?
- adjacency_list tmp(x);
- x = *this;
- *this = tmp;
- }
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- // Directly access a vertex or edge bundle
- vertex_bundled& operator[](vertex_descriptor v)
- { return get(vertex_bundle, *this)[v]; }
-
- const vertex_bundled& operator[](vertex_descriptor v) const
- { return get(vertex_bundle, *this)[v]; }
-
- edge_bundled& operator[](edge_descriptor e)
- { return get(edge_bundle, *this)[e]; }
-
- const edge_bundled& operator[](edge_descriptor e) const
- { return get(edge_bundle, *this)[e]; }
-#endif
-
- // protected: (would be protected if friends were more portable)
- GraphProperty m_property;
- };
-
- template <class OEL, class VL, class DirS, class VP,class EP, class GP,
- class EL, class Tag, class Value>
- inline void
- set_property(adjacency_list<OEL,VL,DirS,VP,EP,GP,EL>& g, Tag,
- const Value& value) {
- get_property_value(g.m_property, Tag()) = value;;
- }
-
- template <class OEL, class VL, class DirS, class VP, class EP, class GP,
- class Tag, class EL>
- inline
- typename graph_property<adjacency_list<OEL,VL,DirS,VP,EP,GP,EL>, Tag>::type&
- get_property(adjacency_list<OEL,VL,DirS,VP,EP,GP,EL>& g, Tag) {
- return get_property_value(g.m_property, Tag());
- }
-
- template <class OEL, class VL, class DirS, class VP, class EP, class GP,
- class Tag, class EL>
- inline
- const
- typename graph_property<adjacency_list<OEL,VL,DirS,VP,EP,GP,EL>, Tag>::type&
- get_property(const adjacency_list<OEL,VL,DirS,VP,EP,GP,EL>& g, Tag) {
- return get_property_value(g.m_property, Tag());
- }
-
- // dwa 09/25/00 - needed to be more explicit so reverse_graph would work.
- template <class Directed, class Vertex,
- class OutEdgeListS,
- class VertexListS,
- class DirectedS,
- class VertexProperty,
- class EdgeProperty,
- class GraphProperty, class EdgeListS>
- inline Vertex
- source(const detail::edge_base<Directed,Vertex>& e,
- const adjacency_list<OutEdgeListS, VertexListS, DirectedS,
- VertexProperty, EdgeProperty, GraphProperty, EdgeListS>&)
- {
- return e.m_source;
- }
-
- template <class Directed, class Vertex, class OutEdgeListS,
- class VertexListS, class DirectedS, class VertexProperty,
- class EdgeProperty, class GraphProperty, class EdgeListS>
- inline Vertex
- target(const detail::edge_base<Directed,Vertex>& e,
- const adjacency_list<OutEdgeListS, VertexListS, DirectedS,
- VertexProperty, EdgeProperty, GraphProperty, EdgeListS>&)
- {
- return e.m_target;
- }
-
- // Support for bundled properties
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template<typename OutEdgeListS, typename VertexListS, typename DirectedS, typename VertexProperty,
- typename EdgeProperty, typename GraphProperty, typename EdgeListS, typename T, typename Bundle>
- inline
- typename property_map<adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty, EdgeProperty,
- GraphProperty, EdgeListS>, T Bundle::*>::type
- get(T Bundle::* p, adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty, EdgeProperty,
- GraphProperty, EdgeListS>& g)
- {
- typedef typename property_map<adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty,
- EdgeProperty, GraphProperty, EdgeListS>, T Bundle::*>::type
- result_type;
- return result_type(&g, p);
- }
-
- template<typename OutEdgeListS, typename VertexListS, typename DirectedS, typename VertexProperty,
- typename EdgeProperty, typename GraphProperty, typename EdgeListS, typename T, typename Bundle>
- inline
- typename property_map<adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty, EdgeProperty,
- GraphProperty, EdgeListS>, T Bundle::*>::const_type
- get(T Bundle::* p, adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty, EdgeProperty,
- GraphProperty, EdgeListS> const & g)
- {
- typedef typename property_map<adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty,
- EdgeProperty, GraphProperty, EdgeListS>, T Bundle::*>::const_type
- result_type;
- return result_type(&g, p);
- }
-
- template<typename OutEdgeListS, typename VertexListS, typename DirectedS, typename VertexProperty,
- typename EdgeProperty, typename GraphProperty, typename EdgeListS, typename T, typename Bundle,
- typename Key>
- inline T
- get(T Bundle::* p, adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty, EdgeProperty,
- GraphProperty, EdgeListS> const & g, const Key& key)
- {
- return get(get(p, g), key);
- }
-
- template<typename OutEdgeListS, typename VertexListS, typename DirectedS, typename VertexProperty,
- typename EdgeProperty, typename GraphProperty, typename EdgeListS, typename T, typename Bundle,
- typename Key>
- inline void
- put(T Bundle::* p, adjacency_list<OutEdgeListS, VertexListS, DirectedS, VertexProperty, EdgeProperty,
- GraphProperty, EdgeListS>& g, const Key& key, const T& value)
- {
- put(get(p, g), key, value);
- }
-
-#endif
-
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_ADJACENCY_LIST_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2001 Universite Joseph Fourier, Grenoble.
-// Author: François Faure
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-
-
-#ifndef ______adj_list_io_______
-#define ______adj_list_io_______
-
-#include <iostream>
-#include <vector>
-#include <boost/graph/adjacency_list.hpp>
-#include <cctype>
-
-// Method read to parse an adjacency list from an input stream. Examples:
-// cin >> read( G );
-// cin >> read( G, NodePropertySubset(), EdgepropertySubset() );
-//
-// Method write to print an adjacency list to an output stream. Examples:
-// cout << write( G );
-// cout << write( G, NodePropertySubset(), EdgepropertySubset() );
-
-namespace boost {
-
-/* outline
- - basic property input
- - get property subset
- - graph parser
- - property printer
- - graph printer
- - user methods
-*/
-
-//===========================================================================
-// basic property input
-
-template<class Tag, class Value, class Next>
-std::istream& operator >> ( std::istream& in, property<Tag,Value,Next>& p )
-{
- in >> p.m_value >> *(static_cast<Next*>(&p)); // houpla !!
- return in;
-}
-
-template<class Tag, class Value>
-std::istream& operator >> ( std::istream& in, property<Tag,Value,no_property>& p )
-{
- in >> p.m_value;
- return in;
-}
-
-inline std::istream& operator >> ( std::istream& in, no_property& )
-{
- return in;
-}
-
-// basic property input
-//===========================================================================
-// get property subsets
-
-// get a single property tagged Stag
-template<class Tag, class Value, class Next, class V, class Stag>
-void get
-( property<Tag,Value,Next>& p, const V& v, Stag s )
-{
- get( *(static_cast<Next*>(&p)),v,s );
-}
-
-template<class Value, class Next, class V, class Stag>
-void get
-( property<Stag,Value,Next>& p, const V& v, Stag )
-{
- p.m_value = v;
-}
-
-// get a subset of properties tagged Stag
-template<class Tag, class Value, class Next,
- class Stag, class Svalue, class Snext>
-void getSubset
-( property<Tag,Value,Next>& p, const property<Stag,Svalue,Snext>& s )
-{
- get( p, s.m_value, Stag() );
- getSubset( p, Snext(s) );
-}
-
-template<class Tag, class Value, class Next,
- class Stag, class Svalue>
-void getSubset
-( property<Tag,Value,Next>& p, const property<Stag,Svalue,no_property>& s )
-{
- get( p, s.m_value, Stag() );
-}
-
-inline void getSubset
-( no_property& p, const no_property& s )
-{
-}
-
-// get property subset
-//===========================================================================
-// graph parser
-
-template<class Graph_t, class VertexProperty, class EdgeProperty, class VertexPropertySubset,
-class EdgePropertySubset>
-struct GraphParser
-{
-
- typedef Graph_t Graph;
-
- GraphParser( Graph* g ): graph(g)
- {}
-
- GraphParser& operator () ( std::istream& in )
- {
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- std::vector<Vertex> nodes;
-
- typedef enum{ PARSE_NUM_NODES, PARSE_VERTEX, PARSE_EDGE } State;
- State state = PARSE_VERTEX;
-
- unsigned int numLine = 1;
- char c;
- while ( in.get(c) )
- {
- if( c== '#' ) skip(in);
- else if( c== 'n' ) state = PARSE_NUM_NODES;
- else if( c== 'v' ) state = PARSE_VERTEX;
- else if( c== 'e' ) state = PARSE_EDGE;
- else if( c== '\n' ) numLine++;
- else if( !std::isspace(c) ){
- in.putback(c);
- if( state == PARSE_VERTEX ){
- VertexPropertySubset readProp;
- if( in >> readProp )
- {
- VertexProperty vp;
- getSubset( vp, readProp );
- nodes.push_back( add_vertex(vp, *graph) );
- }
- else
- std::cerr<<"read vertex, parse error at line"<<numLine<<std::endl;
- }
- else if( state == PARSE_EDGE ) {
- int source, target;
- EdgePropertySubset readProp;
- in >> source >> target;
- if( in >> readProp )
- {
- EdgeProperty ep;
- getSubset( ep, readProp );
- add_edge(nodes[source], nodes[target], ep, *graph);
- }
- else
- std::cerr<<"read edge, parse error at line"<<numLine<<std::endl;
- }
- else { // state == PARSE_NUM_NODES
- int n;
- if( in >> n ){
- for( int i=0; i<n; ++i )
- nodes.push_back( add_vertex( *graph ));
- }
- else
- std::cerr<<"read num_nodes, parse error at line "<< numLine << std::endl;
- }
- }
- }
- return (*this);
- }
-
-
-protected:
-
- Graph* graph;
-
- void skip( std::istream& in )
- {
- char c = 0;
- while( c!='\n' && !in.eof() )
- in.get(c);
- in.putback(c);
- }
-};
-
-// parser
-//=======================================================================
-// property printer
-
-template<class Graph, class Property>
-struct PropertyPrinter
-{
- typedef typename Property::value_type Value;
- typedef typename Property::tag_type Tag;
- typedef typename Property::next_type Next;
-
- PropertyPrinter( Graph& g ):graph(&g){}
-
- template<class Iterator>
- PropertyPrinter& operator () ( std::ostream& out, Iterator it )
- {
- typename property_map<Graph,Tag>::type ps = get(Tag(), *graph);
- out << ps[ *it ] <<" ";
- PropertyPrinter<Graph,Next> print(*graph);
- print(out, it);
- return (*this);
- }
-private:
- Graph* graph;
-};
-template<class Graph>
-struct PropertyPrinter<Graph, no_property>
-{
- PropertyPrinter( Graph& ){}
-
- template<class Iterator>
- PropertyPrinter& operator () ( std::ostream&, Iterator it ){ return *this; }
-};
-
-// property printer
-//=========================================================================
-// graph printer
-
-template<class Graph_t, class EdgeProperty>
-struct EdgePrinter
-{
-
- typedef Graph_t Graph;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
-
- EdgePrinter( Graph& g )
- : graph(g)
- {}
-
- const EdgePrinter& operator () ( std::ostream& out ) const
- {
- // assign indices to vertices
- std::map<Vertex,int> indices;
- int num = 0;
- typename graph_traits<Graph>::vertex_iterator vi;
- for (vi = vertices(graph).first; vi != vertices(graph).second; ++vi){
- indices[*vi] = num++;
- }
-
- // write edges
- PropertyPrinter<Graph, EdgeProperty> print_Edge(graph);
- out << "e" << std::endl;
- typename graph_traits<Graph>::edge_iterator ei;
- for (ei = edges(graph).first; ei != edges(graph).second; ++ei){
- out << indices[source(*ei,graph)] << " " << indices[target(*ei,graph)] << " ";
- print_Edge(out,ei);
- out << std::endl;
- }
- out << std::endl;
- return (*this);
- }
-
-protected:
-
- Graph& graph;
-
-};
-
-template<class Graph, class V, class E>
-struct GraphPrinter: public EdgePrinter<Graph,E>
-{
- GraphPrinter( Graph& g )
- : EdgePrinter<Graph,E>(g)
- {}
-
- const GraphPrinter& operator () ( std::ostream& out ) const
- {
- PropertyPrinter<Graph, V> printNode(this->graph);
- out << "v"<<std::endl;
- typename graph_traits<Graph>::vertex_iterator vi;
- for (vi = vertices(this->graph).first; vi != vertices(this->graph).second; ++vi){
- printNode(out,vi);
- out << std::endl;
- }
-
- EdgePrinter<Graph,E>::operator ()( out );
- return (*this);
- }
-};
-
-template<class Graph, class E>
-struct GraphPrinter<Graph,no_property,E>
- : public EdgePrinter<Graph,E>
-{
- GraphPrinter( Graph& g )
- : EdgePrinter<Graph,E>(g)
- {}
-
- const GraphPrinter& operator () ( std::ostream& out ) const
- {
- out << "n "<< num_vertices(this->graph) << std::endl;
- EdgePrinter<Graph,E>::operator ()( out );
- return (*this);
- }
-};
-
-// graph printer
-//=========================================================================
-// user methods
-
-/// input stream for reading a graph
-template<class Graph, class VP, class EP, class VPS, class EPS>
-std::istream& operator >> ( std::istream& in, GraphParser<Graph,VP,EP,VPS,EPS> gp )
-{
- gp(in);
- return in;
-}
-
-/// graph parser for given subsets of internal vertex and edge properties
-template<class EL, class VL, class D, class VP, class EP, class GP, class VPS, class EPS>
-GraphParser<adjacency_list<EL,VL,D,VP,EP,GP>,VP,EP,VPS,EPS>
-read( adjacency_list<EL,VL,D,VP,EP,GP>& g, VPS vps, EPS eps )
-{
- return GraphParser<adjacency_list<EL,VL,D,VP,EP,GP>,VP,EP,VPS,EPS>(&g);
-}
-
-/// graph parser for all internal vertex and edge properties
-template<class EL, class VL, class D, class VP, class EP, class GP>
-GraphParser<adjacency_list<EL,VL,D,VP,EP,GP>,VP,EP,VP,EP>
-read( adjacency_list<EL,VL,D,VP,EP,GP>& g )
-{
- return GraphParser<adjacency_list<EL,VL,D,VP,EP,GP>,VP,EP,VP,EP>(&g);
-}
-
-
-/// output stream for writing a graph
-template<class Graph, class VP, class EP>
-std::ostream& operator << ( std::ostream& out, const GraphPrinter<Graph,VP,EP>& gp )
-{
- gp(out);
- return out;
-}
-
-/// write the graph with given property subsets
-template<class EL, class VL, class D, class VP, class EP, class GP, class VPS, class EPS>
-GraphPrinter<adjacency_list<EL,VL,D,VP,EP,GP>,VPS,EPS>
-write( adjacency_list<EL,VL,D,VP,EP,GP>& g, VPS, EPS )
-{
- return GraphPrinter<adjacency_list<EL,VL,D,VP,EP,GP>,VPS,EPS>(g);
-}
-
-/// write the graph with all internal vertex and edge properties
-template<class EL, class VL, class D, class VP, class EP, class GP>
-GraphPrinter<adjacency_list<EL,VL,D,VP,EP,GP>,VP,EP>
-write( adjacency_list<EL,VL,D,VP,EP,GP>& g )
-{
- return GraphPrinter<adjacency_list<EL,VL,D,VP,EP,GP>,VP,EP>(g);
-}
-
-// user methods
-//=========================================================================
-}// boost
-#endif
+++ /dev/null
-//=======================================================================
-// Copyright 2001 University of Notre Dame.
-// Author: Jeremy G. Siek
-//
-// Distributed under the 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_ADJACENCY_MATRIX_HPP
-#define BOOST_ADJACENCY_MATRIX_HPP
-
-#include <boost/config.hpp>
-#include <vector>
-#include <memory>
-#include <cassert>
-#include <boost/limits.hpp>
-#include <boost/iterator.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_selectors.hpp>
-#include <boost/pending/ct_if.hpp>
-#include <boost/graph/adjacency_iterator.hpp>
-#include <boost/graph/detail/edge.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/iterator/filter_iterator.hpp>
-#include <boost/pending/integer_range.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/tuple/tuple.hpp>
-
-namespace boost {
-
- namespace detail {
-
- template <class Directed, class Vertex>
- class matrix_edge_desc_impl : public edge_desc_impl<Directed,Vertex>
- {
- typedef edge_desc_impl<Directed,Vertex> Base;
- public:
- matrix_edge_desc_impl() { }
- matrix_edge_desc_impl(bool exists, Vertex s, Vertex d,
- const void* ep = 0)
- : Base(s, d, ep), m_exists(exists) { }
- bool exists() const { return m_exists; }
- private:
- bool m_exists;
- };
-
- struct does_edge_exist {
- template <class Edge>
- bool operator()(const Edge& e) const { return e.exists(); }
- };
-
- template <typename EdgeProperty>
- bool get_edge_exists(const std::pair<bool, EdgeProperty>& stored_edge, int) {
- return stored_edge.first;
- }
- template <typename EdgeProperty>
- void set_edge_exists(
- std::pair<bool, EdgeProperty>& stored_edge,
- bool flag,
- int
- ) {
- stored_edge.first = flag;
- }
-
- template <typename EdgeProxy>
- bool get_edge_exists(const EdgeProxy& edge_proxy, ...) {
- return edge_proxy;
- }
- template <typename EdgeProxy>
- EdgeProxy& set_edge_exists(EdgeProxy& edge_proxy, bool flag, ...) {
- edge_proxy = flag;
- return edge_proxy; // just to avoid never used warning
- }
-
-
-
- template <typename EdgeProperty>
- const EdgeProperty&
- get_property(const std::pair<bool, EdgeProperty>& stored_edge) {
- return stored_edge.second;
- }
- template <typename EdgeProperty>
- EdgeProperty&
- get_property(std::pair<bool, EdgeProperty>& stored_edge) {
- return stored_edge.second;
- }
-
- template <typename StoredEdgeProperty, typename EdgeProperty>
- inline void
- set_property(std::pair<bool, StoredEdgeProperty>& stored_edge,
- const EdgeProperty& ep, int) {
- stored_edge.second = ep;
- }
-
- inline const no_property& get_property(const char&) {
- static no_property s_prop;
- return s_prop;
- }
- inline no_property& get_property(char&) {
- static no_property s_prop;
- return s_prop;
- }
- template <typename EdgeProxy, typename EdgeProperty>
- inline void
- set_property(EdgeProxy, const EdgeProperty&, ...) {}
-
- //=======================================================================
- // Directed Out Edge Iterator
-
- template <
- typename VertexDescriptor, typename MatrixIter
- , typename VerticesSizeType, typename EdgeDescriptor
- >
- struct dir_adj_matrix_out_edge_iter
- : iterator_adaptor<
- dir_adj_matrix_out_edge_iter<VertexDescriptor, MatrixIter, VerticesSizeType, EdgeDescriptor>
- , MatrixIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , std::ptrdiff_t
- >
- {
- typedef iterator_adaptor<
- dir_adj_matrix_out_edge_iter<VertexDescriptor, MatrixIter, VerticesSizeType, EdgeDescriptor>
- , MatrixIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , std::ptrdiff_t
- > super_t;
-
- dir_adj_matrix_out_edge_iter() { }
-
- dir_adj_matrix_out_edge_iter(
- const MatrixIter& i
- , const VertexDescriptor& src
- , const VerticesSizeType& n
- )
- : super_t(i), m_src(src), m_targ(0), m_n(n)
- { }
-
- void increment() {
- ++this->base_reference();
- ++m_targ;
- }
-
- inline EdgeDescriptor
- dereference() const
- {
- return EdgeDescriptor(get_edge_exists(*this->base(), 0), m_src, m_targ,
- &get_property(*this->base()));
- }
- VertexDescriptor m_src, m_targ;
- VerticesSizeType m_n;
- };
-
- //=======================================================================
- // Undirected Out Edge Iterator
-
- template <
- typename VertexDescriptor, typename MatrixIter
- , typename VerticesSizeType, typename EdgeDescriptor
- >
- struct undir_adj_matrix_out_edge_iter
- : iterator_adaptor<
- undir_adj_matrix_out_edge_iter<VertexDescriptor, MatrixIter, VerticesSizeType, EdgeDescriptor>
- , MatrixIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , std::ptrdiff_t
- >
- {
- typedef iterator_adaptor<
- undir_adj_matrix_out_edge_iter<VertexDescriptor, MatrixIter, VerticesSizeType, EdgeDescriptor>
- , MatrixIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , std::ptrdiff_t
- > super_t;
-
- undir_adj_matrix_out_edge_iter() { }
-
- undir_adj_matrix_out_edge_iter(
- const MatrixIter& i
- , const VertexDescriptor& src
- , const VerticesSizeType& n
- )
- : super_t(i), m_src(src), m_inc(src), m_targ(0), m_n(n)
- {}
-
- void increment()
- {
- if (m_targ < m_src) // first half
- {
- ++this->base_reference();
- }
- else if (m_targ < m_n - 1)
- { // second half
- ++m_inc;
- this->base_reference() += m_inc;
- }
- else
- { // past-the-end
- this->base_reference() += m_n - m_src;
- }
- ++m_targ;
- }
-
- inline EdgeDescriptor
- dereference() const
- {
- return EdgeDescriptor(
- get_edge_exists(*this->base(), 0), m_src, m_targ
- , &get_property(*this->base())
- );
- }
-
- VertexDescriptor m_src, m_inc, m_targ;
- VerticesSizeType m_n;
- };
-
- //=======================================================================
- // Edge Iterator
-
- template <typename Directed, typename MatrixIter,
- typename VerticesSizeType, typename EdgeDescriptor>
- struct adj_matrix_edge_iter
- : iterator_adaptor<
- adj_matrix_edge_iter<Directed, MatrixIter, VerticesSizeType, EdgeDescriptor>
- , MatrixIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , std::ptrdiff_t
- >
- {
- typedef iterator_adaptor<
- adj_matrix_edge_iter<Directed, MatrixIter, VerticesSizeType, EdgeDescriptor>
- , MatrixIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , std::ptrdiff_t
- > super_t;
-
- adj_matrix_edge_iter() { }
-
- adj_matrix_edge_iter(const MatrixIter& i, const MatrixIter& start, const VerticesSizeType& n)
- : super_t(i), m_start(start), m_src(0), m_targ(0), m_n(n) { }
-
- void increment()
- {
- increment_dispatch(this->base_reference(), Directed());
- }
-
- void increment_dispatch(MatrixIter& i, directedS)
- {
- ++i;
- if (m_targ == m_n - 1)
- {
- m_targ = 0;
- ++m_src;
- }
- else
- {
- ++m_targ;
- }
- }
-
- void increment_dispatch(MatrixIter& i, undirectedS)
- {
- ++i;
- if (m_targ == m_src)
- {
- m_targ = 0;
- ++m_src;
- }
- else
- {
- ++m_targ;
- }
- }
-
- inline EdgeDescriptor
- dereference() const
- {
- return EdgeDescriptor(
- get_edge_exists(
- *this->base(), 0), m_src, m_targ, &get_property(*this->base())
- );
- }
-
- MatrixIter m_start;
- VerticesSizeType m_src, m_targ, m_n;
- };
-
- } // namespace detail
-
- //=========================================================================
- // Adjacency Matrix Traits
- template <typename Directed = directedS>
- class adjacency_matrix_traits {
- typedef typename Directed::is_bidir_t is_bidir;
- typedef typename Directed::is_directed_t is_directed;
- public:
- typedef typename boost::ct_if_t<is_bidir,
- bidirectional_tag,
- typename boost::ct_if_t<is_directed,
- directed_tag, undirected_tag
- >::type
- >::type directed_category;
-
- typedef disallow_parallel_edge_tag edge_parallel_category;
-
- typedef std::size_t vertex_descriptor;
-
- typedef detail::matrix_edge_desc_impl<directed_category,
- vertex_descriptor> edge_descriptor;
- };
-
- struct adjacency_matrix_class_tag { };
-
- struct adj_matrix_traversal_tag :
- public virtual adjacency_matrix_tag,
- public virtual vertex_list_graph_tag,
- public virtual incidence_graph_tag,
- public virtual adjacency_graph_tag,
- public virtual edge_list_graph_tag { };
-
- //=========================================================================
- // Adjacency Matrix Class
- template <typename Directed = directedS,
- typename VertexProperty = no_property,
- typename EdgeProperty = no_property,
- typename GraphProperty = no_property,
- typename Allocator = std::allocator<bool> >
- class adjacency_matrix {
- typedef adjacency_matrix self;
- typedef adjacency_matrix_traits<Directed> Traits;
-
- public:
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- typedef typename detail::retag_property_list<vertex_bundle_t, VertexProperty>::type
- vertex_property_type;
- typedef typename detail::retag_property_list<edge_bundle_t, EdgeProperty>::type
- edge_property_type;
-
- private:
- typedef typename detail::retag_property_list<vertex_bundle_t, VertexProperty>::retagged
- maybe_vertex_bundled;
-
- typedef typename detail::retag_property_list<edge_bundle_t, EdgeProperty>::retagged
- maybe_edge_bundled;
-
- public:
- // The types that are actually bundled
- typedef typename ct_if<(is_same<maybe_vertex_bundled, no_property>::value),
- no_vertex_bundle,
- maybe_vertex_bundled>::type vertex_bundled;
- typedef typename ct_if<(is_same<maybe_edge_bundled, no_property>::value),
- no_edge_bundle,
- maybe_edge_bundled>::type edge_bundled;
-#else
- typedef EdgeProperty edge_property_type;
- typedef VertexProperty vertex_property_type;
- typedef no_vertex_bundle vertex_bundled;
- typedef no_edge_bundle edge_bundled;
-#endif
-
- public: // should be private
- typedef typename ct_if_t<typename has_property<edge_property_type>::type,
- std::pair<bool, edge_property_type>, char>::type StoredEdge;
-#if (defined(BOOST_MSVC) && BOOST_MSVC <= 1300) || defined(BOOST_NO_STD_ALLOCATOR)
- typedef std::vector<StoredEdge> Matrix;
-#else
- // This causes internal compiler error for MSVC
- typedef typename Allocator::template rebind<StoredEdge>::other Alloc;
- typedef std::vector<StoredEdge, Alloc> Matrix;
-#endif
- typedef typename Matrix::iterator MatrixIter;
- typedef typename Matrix::size_type size_type;
- public:
- // Graph concept required types
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
- typedef typename Traits::directed_category directed_category;
- typedef typename Traits::edge_parallel_category edge_parallel_category;
- typedef adj_matrix_traversal_tag traversal_category;
-
- static vertex_descriptor null_vertex()
- {
- return (std::numeric_limits<vertex_descriptor>::max)();
- }
-
- //private: if friends worked, these would be private
-
- typedef detail::dir_adj_matrix_out_edge_iter<
- vertex_descriptor, MatrixIter, size_type, edge_descriptor
- > DirOutEdgeIter;
-
- typedef detail::undir_adj_matrix_out_edge_iter<
- vertex_descriptor, MatrixIter, size_type, edge_descriptor
- > UnDirOutEdgeIter;
-
- typedef typename ct_if_t<
- typename Directed::is_directed_t, DirOutEdgeIter, UnDirOutEdgeIter
- >::type unfiltered_out_edge_iter;
-
- typedef detail::adj_matrix_edge_iter<
- Directed, MatrixIter, size_type, edge_descriptor
- > unfiltered_edge_iter;
-
- public:
-
- // IncidenceGraph concept required types
- typedef filter_iterator<detail::does_edge_exist, unfiltered_out_edge_iter>
- out_edge_iterator;
-
- typedef size_type degree_size_type;
-
- // BidirectionalGraph required types
- typedef void in_edge_iterator;
-
- // AdjacencyGraph required types
- typedef typename adjacency_iterator_generator<self,
- vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
-
- // VertexListGraph required types
- typedef size_type vertices_size_type;
- typedef integer_range<vertex_descriptor> VertexList;
- typedef typename VertexList::iterator vertex_iterator;
-
- // EdgeListGrpah required types
- typedef size_type edges_size_type;
- typedef filter_iterator<
- detail::does_edge_exist, unfiltered_edge_iter
- > edge_iterator;
-
- // PropertyGraph required types
- typedef adjacency_matrix_class_tag graph_tag;
-
- // Constructor required by MutableGraph
- adjacency_matrix(vertices_size_type n_vertices)
- : m_matrix(Directed::is_directed ?
- (n_vertices * n_vertices)
- : (n_vertices * (n_vertices + 1) / 2)),
- m_vertex_set(0, n_vertices),
- m_vertex_properties(n_vertices),
- m_num_edges(0) { }
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- // Directly access a vertex or edge bundle
- vertex_bundled& operator[](vertex_descriptor v)
- { return get(vertex_bundle, *this)[v]; }
-
- const vertex_bundled& operator[](vertex_descriptor v) const
- { return get(vertex_bundle, *this)[v]; }
-
- edge_bundled& operator[](edge_descriptor e)
- { return get(edge_bundle, *this)[e]; }
-
- const edge_bundled& operator[](edge_descriptor e) const
- { return get(edge_bundle, *this)[e]; }
-#endif
-
- //private: if friends worked, these would be private
-
- typename Matrix::const_reference
- get_edge(vertex_descriptor u, vertex_descriptor v) const {
- if (Directed::is_directed)
- return m_matrix[u * m_vertex_set.size() + v];
- else {
- if (v > u)
- std::swap(u, v);
- return m_matrix[u * (u + 1)/2 + v];
- }
- }
- typename Matrix::reference
- get_edge(vertex_descriptor u, vertex_descriptor v) {
- if (Directed::is_directed)
- return m_matrix[u * m_vertex_set.size() + v];
- else {
- if (v > u)
- std::swap(u, v);
- return m_matrix[u * (u + 1)/2 + v];
- }
- }
-
- Matrix m_matrix;
- VertexList m_vertex_set;
- std::vector<vertex_property_type> m_vertex_properties;
- size_type m_num_edges;
- };
-
- //=========================================================================
- // Functions required by the AdjacencyMatrix concept
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor,
- bool>
- edge(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor v,
- const adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- bool exists = detail::get_edge_exists(g.get_edge(u,v), 0);
- typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor
- e(exists, u, v, &detail::get_property(g.get_edge(u,v)));
- return std::make_pair(e, exists);
- }
-
- //=========================================================================
- // Functions required by the IncidenceGraph concept
-
- // O(1)
- template <typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<directedS,VP,EP,GP,A>::out_edge_iterator,
- typename adjacency_matrix<directedS,VP,EP,GP,A>::out_edge_iterator>
- out_edges
- (typename adjacency_matrix<directedS,VP,EP,GP,A>::vertex_descriptor u,
- const adjacency_matrix<directedS,VP,EP,GP,A>& g_)
- {
- typedef adjacency_matrix<directedS,VP,EP,GP,A> Graph;
- Graph& g = const_cast<Graph&>(g_);
- typename Graph::vertices_size_type offset = u * g.m_vertex_set.size();
- typename Graph::MatrixIter f = g.m_matrix.begin() + offset;
- typename Graph::MatrixIter l = f + g.m_vertex_set.size();
- typename Graph::unfiltered_out_edge_iter
- first(f, u, g.m_vertex_set.size())
- , last(l, u, g.m_vertex_set.size());
- detail::does_edge_exist pred;
- typedef typename Graph::out_edge_iterator out_edge_iterator;
- return std::make_pair(out_edge_iterator(pred, first, last),
- out_edge_iterator(pred, last, last));
- }
-
- // O(1)
- template <typename VP, typename EP, typename GP, typename A>
- std::pair<
- typename adjacency_matrix<undirectedS,VP,EP,GP,A>::out_edge_iterator,
- typename adjacency_matrix<undirectedS,VP,EP,GP,A>::out_edge_iterator>
- out_edges
- (typename adjacency_matrix<undirectedS,VP,EP,GP,A>::vertex_descriptor u,
- const adjacency_matrix<undirectedS,VP,EP,GP,A>& g_)
- {
- typedef adjacency_matrix<undirectedS,VP,EP,GP,A> Graph;
- Graph& g = const_cast<Graph&>(g_);
- typename Graph::vertices_size_type offset = u * (u + 1) / 2;
- typename Graph::MatrixIter f = g.m_matrix.begin() + offset;
- typename Graph::MatrixIter l = g.m_matrix.end();
-
- typename Graph::unfiltered_out_edge_iter
- first(f, u, g.m_vertex_set.size())
- , last(l, u, g.m_vertex_set.size());
-
- detail::does_edge_exist pred;
- typedef typename Graph::out_edge_iterator out_edge_iterator;
- return std::make_pair(out_edge_iterator(pred, first, last),
- out_edge_iterator(pred, last, last));
- }
-
- // O(N)
- template <typename D, typename VP, typename EP, typename GP, typename A>
- typename adjacency_matrix<D,VP,EP,GP,A>::degree_size_type
- out_degree(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- const adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- typename adjacency_matrix<D,VP,EP,GP,A>::degree_size_type n = 0;
- typename adjacency_matrix<D,VP,EP,GP,A>::out_edge_iterator f, l;
- for (tie(f, l) = out_edges(u, g); f != l; ++f)
- ++n;
- return n;
- }
-
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A,
- typename Dir, typename Vertex>
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
- source(const detail::matrix_edge_desc_impl<Dir,Vertex>& e,
- const adjacency_matrix<D,VP,EP,GP,A>&)
- {
- return e.m_source;
- }
-
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A,
- typename Dir, typename Vertex>
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
- target(const detail::matrix_edge_desc_impl<Dir,Vertex>& e,
- const adjacency_matrix<D,VP,EP,GP,A>&)
- {
- return e.m_target;
- }
-
- //=========================================================================
- // Functions required by the AdjacencyGraph concept
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::adjacency_iterator,
- typename adjacency_matrix<D,VP,EP,GP,A>::adjacency_iterator>
- adjacent_vertices
- (typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- const adjacency_matrix<D,VP,EP,GP,A>& g_)
- {
- typedef adjacency_matrix<D,VP,EP,GP,A> Graph;
- const Graph& cg = static_cast<const Graph&>(g_);
- Graph& g = const_cast<Graph&>(cg);
- typedef typename Graph::adjacency_iterator adjacency_iterator;
- typename Graph::out_edge_iterator first, last;
- boost::tie(first, last) = out_edges(u, g);
- return std::make_pair(adjacency_iterator(first, &g),
- adjacency_iterator(last, &g));
- }
-
- //=========================================================================
- // Functions required by the VertexListGraph concept
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::vertex_iterator,
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_iterator>
- vertices(const adjacency_matrix<D,VP,EP,GP,A>& g_) {
- typedef adjacency_matrix<D,VP,EP,GP,A> Graph;
- Graph& g = const_cast<Graph&>(g_);
- return std::make_pair(g.m_vertex_set.begin(), g.m_vertex_set.end());
- }
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- typename adjacency_matrix<D,VP,EP,GP,A>::vertices_size_type
- num_vertices(const adjacency_matrix<D,VP,EP,GP,A>& g) {
- return g.m_vertex_set.size();
- }
-
- //=========================================================================
- // Functions required by the EdgeListGraph concept
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::edge_iterator,
- typename adjacency_matrix<D,VP,EP,GP,A>::edge_iterator>
- edges(const adjacency_matrix<D,VP,EP,GP,A>& g_)
- {
- typedef adjacency_matrix<D,VP,EP,GP,A> Graph;
- Graph& g = const_cast<Graph&>(g_);
-
- typename Graph::unfiltered_edge_iter
- first(g.m_matrix.begin(), g.m_matrix.begin(),
- g.m_vertex_set.size()),
- last(g.m_matrix.end(), g.m_matrix.begin(),
- g.m_vertex_set.size());
- detail::does_edge_exist pred;
- typedef typename Graph::edge_iterator edge_iterator;
- return std::make_pair(edge_iterator(pred, first, last),
- edge_iterator(pred, last, last));
- }
-
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A>
- typename adjacency_matrix<D,VP,EP,GP,A>::edges_size_type
- num_edges(const adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- return g.m_num_edges;
- }
-
- //=========================================================================
- // Functions required by the MutableGraph concept
-
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor, bool>
- add_edge(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor v,
- const EP& ep,
- adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- typedef typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor
- edge_descriptor;
- if (detail::get_edge_exists(g.get_edge(u,v), 0) == false) {
- ++(g.m_num_edges);
- detail::set_property(g.get_edge(u,v), ep, 0);
- detail::set_edge_exists(g.get_edge(u,v), true, 0);
- return std::make_pair
- (edge_descriptor(true, u, v, &detail::get_property(g.get_edge(u,v))),
- true);
- } else
- return std::make_pair
- (edge_descriptor(true, u, v, &detail::get_property(g.get_edge(u,v))),
- false);
- }
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A>
- std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor, bool>
- add_edge(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor v,
- adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- EP ep;
- return add_edge(u, v, ep, g);
- }
-
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A>
- void
- remove_edge(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor v,
- adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- --(g.m_num_edges);
- detail::set_edge_exists(g.get_edge(u,v), false, 0);
- }
-
- // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A>
- void
- remove_edge(typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor e,
- adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- remove_edge(source(e, g), target(e, g), g);
- }
-
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- inline typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
- add_vertex(adjacency_matrix<D,VP,EP,GP,A>& g) {
- // UNDER CONSTRUCTION
- assert(false);
- return *vertices(g).first;
- }
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- inline typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
- add_vertex(const VP& vp, adjacency_matrix<D,VP,EP,GP,A>& g) {
- // UNDER CONSTRUCTION
- assert(false);
- return *vertices(g).first;
- }
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- inline void
- remove_vertex(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- // UNDER CONSTRUCTION
- assert(false);
- }
-
- // O(V)
- template <typename VP, typename EP, typename GP, typename A>
- void
- clear_vertex
- (typename adjacency_matrix<directedS,VP,EP,GP,A>::vertex_descriptor u,
- adjacency_matrix<directedS,VP,EP,GP,A>& g)
- {
- typename adjacency_matrix<directedS,VP,EP,GP,A>::vertex_iterator
- vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- remove_edge(u, *vi, g);
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- remove_edge(*vi, u, g);
- }
-
- // O(V)
- template <typename VP, typename EP, typename GP, typename A>
- void
- clear_vertex
- (typename adjacency_matrix<undirectedS,VP,EP,GP,A>::vertex_descriptor u,
- adjacency_matrix<undirectedS,VP,EP,GP,A>& g)
- {
- typename adjacency_matrix<undirectedS,VP,EP,GP,A>::vertex_iterator
- vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- remove_edge(u, *vi, g);
- }
-
- //=========================================================================
- // Vertex Property Map
-
- template <typename GraphPtr, typename Vertex, typename T, typename R,
- typename Tag>
- class adj_matrix_vertex_property_map
- : public put_get_helper<R,
- adj_matrix_vertex_property_map<GraphPtr, Vertex, T, R, Tag> >
- {
- public:
- typedef T value_type;
- typedef R reference;
- typedef Vertex key_type;
- typedef boost::lvalue_property_map_tag category;
- adj_matrix_vertex_property_map() { }
- adj_matrix_vertex_property_map(GraphPtr g) : m_g(g) { }
- inline reference operator[](key_type v) const {
- return get_property_value(m_g->m_vertex_properties[v], Tag());
- }
- GraphPtr m_g;
- };
-
- template <class Property, class Vertex>
- struct adj_matrix_vertex_id_map
- : public boost::put_get_helper<Vertex,
- adj_matrix_vertex_id_map<Property, Vertex> >
- {
- typedef Vertex value_type;
- typedef Vertex reference;
- typedef Vertex key_type;
- typedef boost::readable_property_map_tag category;
- adj_matrix_vertex_id_map() { }
- template <class Graph>
- inline adj_matrix_vertex_id_map(const Graph&) { }
- inline value_type operator[](key_type v) const { return v; }
- };
-
- namespace detail {
-
- struct adj_matrix_any_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename property_value<Property,Tag>::type Value;
- typedef typename boost::graph_traits<Graph>::vertex_descriptor Vertex;
-
- typedef adj_matrix_vertex_property_map<Graph*, Vertex, Value, Value&,
- Tag> type;
- typedef adj_matrix_vertex_property_map<const Graph*, Vertex, Value,
- const Value&, Tag> const_type;
- };
- };
- struct adj_matrix_id_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename Graph::vertex_descriptor Vertex;
- typedef adj_matrix_vertex_id_map<Property, Vertex> type;
- typedef adj_matrix_vertex_id_map<Property, Vertex> const_type;
- };
- };
-
- template <class Tag>
- struct adj_matrix_choose_vertex_pa_helper {
- typedef adj_matrix_any_vertex_pa type;
- };
- template <>
- struct adj_matrix_choose_vertex_pa_helper<vertex_index_t> {
- typedef adj_matrix_id_vertex_pa type;
- };
-
- template <class Tag, class Graph, class Property>
- struct adj_matrix_choose_vertex_pa {
- typedef typename adj_matrix_choose_vertex_pa_helper<Tag>::type Helper;
- typedef typename Helper::template bind_<Tag,Graph,Property> Bind;
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
-
- struct adj_matrix_vertex_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef adj_matrix_choose_vertex_pa<Tag,Graph,Property> Choice;
- typedef typename Choice::type type;
- typedef typename Choice::const_type const_type;
- };
- };
-
- } // namespace detail
-
- template <>
- struct vertex_property_selector<adjacency_matrix_class_tag> {
- typedef detail::adj_matrix_vertex_property_selector type;
- };
-
- //=========================================================================
- // Edge Property Map
-
-
- template <typename Directed, typename Property, typename Vertex,
- typename T, typename R, typename Tag>
- class adj_matrix_edge_property_map
- : public put_get_helper<R,
- adj_matrix_edge_property_map<Directed, Property, Vertex, T, R, Tag> >
- {
- public:
- typedef T value_type;
- typedef R reference;
- typedef detail::matrix_edge_desc_impl<Directed, Vertex> key_type;
- typedef boost::lvalue_property_map_tag category;
- inline reference operator[](key_type e) const {
- Property& p = *(Property*)e.get_property();
- return get_property_value(p, Tag());
- }
- };
- struct adj_matrix_edge_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef typename property_value<Property,Tag>::type T;
- typedef typename Graph::vertex_descriptor Vertex;
- typedef adj_matrix_edge_property_map<typename Graph::directed_category,
- Property, Vertex, T, T&, Tag> type;
- typedef adj_matrix_edge_property_map<typename Graph::directed_category,
- Property, Vertex, T, const T&, Tag> const_type;
- };
- };
- template <>
- struct edge_property_selector<adjacency_matrix_class_tag> {
- typedef adj_matrix_edge_property_selector type;
- };
-
- //=========================================================================
- // Functions required by PropertyGraph
-
- namespace detail {
-
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A>
- typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::type
- get_dispatch(adjacency_matrix<D,VP,EP,GP,A>& g, Property,
- vertex_property_tag)
- {
- typedef adjacency_matrix<D,VP,EP,GP,A> Graph;
- typedef typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::type PA;
- return PA(&g);
- }
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A>
- typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::type
- get_dispatch(adjacency_matrix<D,VP,EP,GP,A>&, Property,
- edge_property_tag)
- {
- typedef typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::type PA;
- return PA();
- }
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A>
- typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::const_type
- get_dispatch(const adjacency_matrix<D,VP,EP,GP,A>& g, Property,
- vertex_property_tag)
- {
- typedef adjacency_matrix<D,VP,EP,GP,A> Graph;
- typedef typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::const_type PA;
- return PA(&g);
- }
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A>
- typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::const_type
- get_dispatch(const adjacency_matrix<D,VP,EP,GP,A>&, Property,
- edge_property_tag)
- {
- typedef typename boost::property_map<adjacency_matrix<D,VP,EP,GP,A>,
- Property>::const_type PA;
- return PA();
- }
-
- } // namespace detail
-
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A>
- inline
- typename property_map<adjacency_matrix<D,VP,EP,GP,A>, Property>::type
- get(Property p, adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- typedef typename property_kind<Property>::type Kind;
- return detail::get_dispatch(g, p, Kind());
- }
-
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A>
- inline
- typename property_map<adjacency_matrix<D,VP,EP,GP,A>, Property>::const_type
- get(Property p, const adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- typedef typename property_kind<Property>::type Kind;
- return detail::get_dispatch(g, p, Kind());
- }
-
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A, typename Key>
- inline
- typename property_traits<
- typename property_map<adjacency_matrix<D,VP,EP,GP,A>, Property>::const_type
- >::value_type
- get(Property p, const adjacency_matrix<D,VP,EP,GP,A>& g,
- const Key& key)
- {
- return get(get(p, g), key);
- }
-
- template <typename Property, typename D, typename VP, typename EP,
- typename GP, typename A, typename Key, typename Value>
- inline void
- put(Property p, adjacency_matrix<D,VP,EP,GP,A>& g,
- const Key& key, const Value& value)
- {
- typedef adjacency_matrix<D,VP,EP,GP,A> Graph;
- typedef typename boost::property_map<Graph, Property>::type Map;
- Map pmap = get(p, g);
- put(pmap, key, value);
- }
-
- //=========================================================================
- // Other Functions
-
- template <typename D, typename VP, typename EP, typename GP, typename A>
- typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
- vertex(typename adjacency_matrix<D,VP,EP,GP,A>::vertices_size_type n,
- const adjacency_matrix<D,VP,EP,GP,A>& g)
- {
- return n;
- }
-
- // Support for bundled properties
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template <typename Directed, typename VertexProperty, typename EdgeProperty, typename GraphProperty,
- typename Allocator, typename T, typename Bundle>
- inline
- typename property_map<adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator>,
- T Bundle::*>::type
- get(T Bundle::* p, adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator>& g)
- {
- typedef typename property_map<adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator>,
- T Bundle::*>::type
- result_type;
- return result_type(&g, p);
- }
-
- template <typename Directed, typename VertexProperty, typename EdgeProperty, typename GraphProperty,
- typename Allocator, typename T, typename Bundle>
- inline
- typename property_map<adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator>,
- T Bundle::*>::const_type
- get(T Bundle::* p, adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator> const & g)
- {
- typedef typename property_map<adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator>,
- T Bundle::*>::const_type
- result_type;
- return result_type(&g, p);
- }
-
- template <typename Directed, typename VertexProperty, typename EdgeProperty, typename GraphProperty,
- typename Allocator, typename T, typename Bundle, typename Key>
- inline T
- get(T Bundle::* p, adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator> const & g,
- const Key& key)
- {
- return get(get(p, g), key);
- }
-
- template <typename Directed, typename VertexProperty, typename EdgeProperty, typename GraphProperty,
- typename Allocator, typename T, typename Bundle, typename Key>
- inline void
- put(T Bundle::* p, adjacency_matrix<Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator>& g,
- const Key& key, const T& value)
- {
- put(get(p, g), key, value);
- }
-
-#endif
-
-} // namespace boost
-
-#endif // BOOST_ADJACENCY_MATRIX_HPP
+++ /dev/null
-
-
-//
-//=======================================================================
-// Copyright (c) 2004 Kristopher Beevers
-//
-// Distributed under the 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_GRAPH_ASTAR_SEARCH_HPP
-#define BOOST_GRAPH_ASTAR_SEARCH_HPP
-
-
-#include <functional>
-#include <boost/limits.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <boost/pending/mutable_queue.hpp>
-#include <boost/graph/relax.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-#include <boost/graph/exception.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-
-
-namespace boost {
-
-
- template <class Heuristic, class Graph>
- struct AStarHeuristicConcept {
- void constraints()
- {
- function_requires< CopyConstructibleConcept<Heuristic> >();
- h(u);
- }
- Heuristic h;
- typename graph_traits<Graph>::vertex_descriptor u;
- };
-
-
- template <class Graph, class CostType>
- class astar_heuristic : public std::unary_function<
- typename graph_traits<Graph>::vertex_descriptor, CostType>
- {
- public:
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- astar_heuristic() {}
- CostType operator()(Vertex u) { return static_cast<CostType>(0); }
- };
-
-
-
- template <class Visitor, class Graph>
- struct AStarVisitorConcept {
- void constraints()
- {
- function_requires< CopyConstructibleConcept<Visitor> >();
- vis.initialize_vertex(u, g);
- vis.discover_vertex(u, g);
- vis.examine_vertex(u, g);
- vis.examine_edge(e, g);
- vis.edge_relaxed(e, g);
- vis.edge_not_relaxed(e, g);
- vis.black_target(e, g);
- vis.finish_vertex(u, g);
- }
- Visitor vis;
- Graph g;
- typename graph_traits<Graph>::vertex_descriptor u;
- typename graph_traits<Graph>::edge_descriptor e;
- };
-
-
- template <class Visitors = null_visitor>
- class astar_visitor : public bfs_visitor<Visitors> {
- public:
- astar_visitor() {}
- astar_visitor(Visitors vis)
- : bfs_visitor<Visitors>(vis) {}
-
- template <class Edge, class Graph>
- void edge_relaxed(Edge e, Graph& g) {
- invoke_visitors(this->m_vis, e, g, on_edge_relaxed());
- }
- template <class Edge, class Graph>
- void edge_not_relaxed(Edge e, Graph& g) {
- invoke_visitors(this->m_vis, e, g, on_edge_not_relaxed());
- }
- private:
- template <class Edge, class Graph>
- void tree_edge(Edge e, Graph& g) {}
- template <class Edge, class Graph>
- void non_tree_edge(Edge e, Graph& g) {}
- };
- template <class Visitors>
- astar_visitor<Visitors>
- make_astar_visitor(Visitors vis) {
- return astar_visitor<Visitors>(vis);
- }
- typedef astar_visitor<> default_astar_visitor;
-
-
- namespace detail {
-
- template <class AStarHeuristic, class UniformCostVisitor,
- class UpdatableQueue, class PredecessorMap,
- class CostMap, class DistanceMap, class WeightMap,
- class ColorMap, class BinaryFunction,
- class BinaryPredicate>
- struct astar_bfs_visitor
- {
-
- typedef typename property_traits<CostMap>::value_type C;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
-
- astar_bfs_visitor(AStarHeuristic h, UniformCostVisitor vis,
- UpdatableQueue& Q, PredecessorMap p,
- CostMap c, DistanceMap d, WeightMap w,
- ColorMap col, BinaryFunction combine,
- BinaryPredicate compare, C zero)
- : m_h(h), m_vis(vis), m_Q(Q), m_predecessor(p), m_cost(c),
- m_distance(d), m_weight(w), m_color(col),
- m_combine(combine), m_compare(compare), m_zero(zero) {}
-
-
- template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, Graph& g) {
- m_vis.initialize_vertex(u, g);
- }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
- m_vis.discover_vertex(u, g);
- }
- template <class Vertex, class Graph>
- void examine_vertex(Vertex u, Graph& g) {
- m_vis.examine_vertex(u, g);
- }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) {
- m_vis.finish_vertex(u, g);
- }
- template <class Edge, class Graph>
- void examine_edge(Edge e, Graph& g) {
- if (m_compare(get(m_weight, e), m_zero))
- throw negative_edge();
- m_vis.examine_edge(e, g);
- }
- template <class Edge, class Graph>
- void non_tree_edge(Edge, Graph&) {}
-
-
-
- template <class Edge, class Graph>
- void tree_edge(Edge e, Graph& g) {
- m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
- m_combine, m_compare);
- if(m_decreased) {
- m_vis.edge_relaxed(e, g);
- put(m_cost, target(e, g),
- m_combine(get(m_distance, target(e, g)),
- m_h(target(e, g))));
- } else
- m_vis.edge_not_relaxed(e, g);
- }
-
-
- template <class Edge, class Graph>
- void gray_target(Edge e, Graph& g) {
- m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
- m_combine, m_compare);
- if(m_decreased) {
- put(m_cost, target(e, g),
- m_combine(get(m_distance, target(e, g)),
- m_h(target(e, g))));
- m_Q.update(target(e, g));
- m_vis.edge_relaxed(e, g);
- } else
- m_vis.edge_not_relaxed(e, g);
- }
-
-
- template <class Edge, class Graph>
- void black_target(Edge e, Graph& g) {
- m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
- m_combine, m_compare);
- if(m_decreased) {
- m_vis.edge_relaxed(e, g);
- put(m_cost, target(e, g),
- m_combine(get(m_distance, target(e, g)),
- m_h(target(e, g))));
- m_Q.push(target(e, g));
- put(m_color, target(e, g), Color::gray());
- m_vis.black_target(e, g);
- } else
- m_vis.edge_not_relaxed(e, g);
- }
-
-
-
- AStarHeuristic m_h;
- UniformCostVisitor m_vis;
- UpdatableQueue& m_Q;
- PredecessorMap m_predecessor;
- CostMap m_cost;
- DistanceMap m_distance;
- WeightMap m_weight;
- ColorMap m_color;
- BinaryFunction m_combine;
- BinaryPredicate m_compare;
- bool m_decreased;
- C m_zero;
-
- };
-
- } // namespace detail
-
-
-
- template <typename VertexListGraph, typename AStarHeuristic,
- typename AStarVisitor, typename PredecessorMap,
- typename CostMap, typename DistanceMap,
- typename WeightMap, typename ColorMap,
- typename VertexIndexMap,
- typename CompareFunction, typename CombineFunction,
- typename CostInf, typename CostZero>
- inline void
- astar_search_no_init
- (VertexListGraph &g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- AStarHeuristic h, AStarVisitor vis,
- PredecessorMap predecessor, CostMap cost,
- DistanceMap distance, WeightMap weight,
- ColorMap color, VertexIndexMap index_map,
- CompareFunction compare, CombineFunction combine,
- CostInf inf, CostZero zero)
- {
- typedef indirect_cmp<CostMap, CompareFunction> IndirectCmp;
- IndirectCmp icmp(cost, compare);
-
- typedef typename graph_traits<VertexListGraph>::vertex_descriptor
- Vertex;
- typedef mutable_queue<Vertex, std::vector<Vertex>,
- IndirectCmp, VertexIndexMap>
- MutableQueue;
- MutableQueue Q(num_vertices(g), icmp, index_map);
-
- detail::astar_bfs_visitor<AStarHeuristic, AStarVisitor,
- MutableQueue, PredecessorMap, CostMap, DistanceMap,
- WeightMap, ColorMap, CombineFunction, CompareFunction>
- bfs_vis(h, vis, Q, predecessor, cost, distance, weight,
- color, combine, compare, zero);
-
- breadth_first_visit(g, s, Q, bfs_vis, color);
- }
-
-
- // Non-named parameter interface
- template <typename VertexListGraph, typename AStarHeuristic,
- typename AStarVisitor, typename PredecessorMap,
- typename CostMap, typename DistanceMap,
- typename WeightMap, typename VertexIndexMap,
- typename ColorMap,
- typename CompareFunction, typename CombineFunction,
- typename CostInf, typename CostZero>
- inline void
- astar_search
- (VertexListGraph &g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- AStarHeuristic h, AStarVisitor vis,
- PredecessorMap predecessor, CostMap cost,
- DistanceMap distance, WeightMap weight,
- VertexIndexMap index_map, ColorMap color,
- CompareFunction compare, CombineFunction combine,
- CostInf inf, CostZero zero)
- {
-
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- put(color, *ui, Color::white());
- put(distance, *ui, inf);
- put(cost, *ui, inf);
- put(predecessor, *ui, *ui);
- }
- put(distance, s, zero);
- put(cost, s, h(s));
-
- astar_search_no_init
- (g, s, h, vis, predecessor, cost, distance, weight,
- color, index_map, compare, combine, inf, zero);
-
- }
-
-
-
- namespace detail {
- template <class VertexListGraph, class AStarHeuristic,
- class CostMap, class DistanceMap, class WeightMap,
- class IndexMap, class ColorMap, class Params>
- inline void
- astar_dispatch2
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- AStarHeuristic h, CostMap cost, DistanceMap distance,
- WeightMap weight, IndexMap index_map, ColorMap color,
- const Params& params)
- {
- dummy_property_map p_map;
- typedef typename property_traits<CostMap>::value_type C;
- astar_search
- (g, s, h,
- choose_param(get_param(params, graph_visitor),
- make_astar_visitor(null_visitor())),
- choose_param(get_param(params, vertex_predecessor), p_map),
- cost, distance, weight, index_map, color,
- choose_param(get_param(params, distance_compare_t()),
- std::less<C>()),
- choose_param(get_param(params, distance_combine_t()),
- closed_plus<C>()),
- choose_param(get_param(params, distance_inf_t()),
- std::numeric_limits<C>::max BOOST_PREVENT_MACRO_SUBSTITUTION ()),
- choose_param(get_param(params, distance_zero_t()),
- C()));
- }
-
- template <class VertexListGraph, class AStarHeuristic,
- class CostMap, class DistanceMap, class WeightMap,
- class IndexMap, class ColorMap, class Params>
- inline void
- astar_dispatch1
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- AStarHeuristic h, CostMap cost, DistanceMap distance,
- WeightMap weight, IndexMap index_map, ColorMap color,
- const Params& params)
- {
- typedef typename property_traits<WeightMap>::value_type D;
- typename std::vector<D>::size_type
- n = is_default_param(distance) ? num_vertices(g) : 1;
- std::vector<D> distance_map(n);
- n = is_default_param(cost) ? num_vertices(g) : 1;
- std::vector<D> cost_map(n);
- std::vector<default_color_type> color_map(num_vertices(g));
- default_color_type c = white_color;
-
- detail::astar_dispatch2
- (g, s, h,
- choose_param(cost, make_iterator_property_map
- (cost_map.begin(), index_map,
- cost_map[0])),
- choose_param(distance, make_iterator_property_map
- (distance_map.begin(), index_map,
- distance_map[0])),
- weight, index_map,
- choose_param(color, make_iterator_property_map
- (color_map.begin(), index_map, c)),
- params);
- }
- } // namespace detail
-
-
- // Named parameter interface
- template <typename VertexListGraph,
- typename AStarHeuristic,
- typename P, typename T, typename R>
- void
- astar_search
- (VertexListGraph &g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- AStarHeuristic h, const bgl_named_params<P, T, R>& params)
- {
-
- detail::astar_dispatch1
- (g, s, h,
- get_param(params, vertex_rank),
- get_param(params, vertex_distance),
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
- get_param(params, vertex_color),
- params);
-
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_ASTAR_SEARCH_HPP
+++ /dev/null
-// Copyright (c) Jeremy Siek 2001, Marc Wintermantel 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_GRAPH_BANDWIDTH_HPP
-#define BOOST_GRAPH_BANDWIDTH_HPP
-
-#include <algorithm> // for std::min and std::max
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/detail/numeric_traits.hpp>
-
-namespace boost {
-
- template <typename Graph, typename VertexIndexMap>
- typename graph_traits<Graph>::vertices_size_type
- ith_bandwidth(typename graph_traits<Graph>::vertex_descriptor i,
- const Graph& g,
- VertexIndexMap index)
- {
- BOOST_USING_STD_MAX();
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- size_type b = 0;
- typename graph_traits<Graph>::out_edge_iterator e, end;
- for (tie(e, end) = out_edges(i, g); e != end; ++e) {
- int f_i = get(index, i);
- int f_j = get(index, target(*e, g));
- using namespace std; // to call abs() unqualified
- if(f_i > f_j)
- b = max BOOST_PREVENT_MACRO_SUBSTITUTION (b, size_type(f_i - f_j));
- }
- return b;
- }
-
- template <typename Graph>
- typename graph_traits<Graph>::vertices_size_type
- ith_bandwidth(typename graph_traits<Graph>::vertex_descriptor i,
- const Graph& g)
- {
- return ith_bandwidth(i, g, get(vertex_index, g));
- }
-
- template <typename Graph, typename VertexIndexMap>
- typename graph_traits<Graph>::vertices_size_type
- bandwidth(const Graph& g, VertexIndexMap index)
- {
- BOOST_USING_STD_MAX();
- typename graph_traits<Graph>::vertices_size_type b = 0;
- typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
- b = max BOOST_PREVENT_MACRO_SUBSTITUTION (b, ith_bandwidth(*i, g, index));
- return b;
- }
-
- template <typename Graph>
- typename graph_traits<Graph>::vertices_size_type
- bandwidth(const Graph& g)
- {
- return bandwidth(g, get(vertex_index, g));
- }
-
- template <typename Graph, typename VertexIndexMap>
- typename graph_traits<Graph>::vertices_size_type
- edgesum(const Graph& g, VertexIndexMap index_map)
- {
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- typedef typename detail::numeric_traits<size_type>::difference_type diff_t;
- size_type sum = 0;
- typename graph_traits<Graph>::edge_iterator i, end;
- for (tie(i, end) = edges(g); i != end; ++i) {
- diff_t f_u = get(index_map, source(*i, g));
- diff_t f_v = get(index_map, target(*i, g));
- using namespace std; // to call abs() unqualified
- sum += abs(f_u - f_v);
- }
- return sum;
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_BANDWIDTH_HPP
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_BETWEENNESS_CENTRALITY_CLUSTERING_HPP
-#define BOOST_GRAPH_BETWEENNESS_CENTRALITY_CLUSTERING_HPP
-
-#include <boost/graph/betweenness_centrality.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-#include <algorithm>
-#include <vector>
-#include <boost/property_map.hpp>
-
-namespace boost {
-
-/** Threshold termination function for the betweenness centrality
- * clustering algorithm.
- */
-template<typename T>
-struct bc_clustering_threshold
-{
- typedef T centrality_type;
-
- /// Terminate clustering when maximum absolute edge centrality is
- /// below the given threshold.
- explicit bc_clustering_threshold(T threshold)
- : threshold(threshold), dividend(1.0) {}
-
- /**
- * Terminate clustering when the maximum edge centrality is below
- * the given threshold.
- *
- * @param threshold the threshold value
- *
- * @param g the graph on which the threshold will be calculated
- *
- * @param normalize when true, the threshold is compared against the
- * normalized edge centrality based on the input graph; otherwise,
- * the threshold is compared against the absolute edge centrality.
- */
- template<typename Graph>
- bc_clustering_threshold(T threshold, const Graph& g, bool normalize = true)
- : threshold(threshold), dividend(1.0)
- {
- if (normalize) {
- typename graph_traits<Graph>::vertices_size_type n = num_vertices(g);
- dividend = T((n - 1) * (n - 2)) / T(2);
- }
- }
-
- /** Returns true when the given maximum edge centrality (potentially
- * normalized) falls below the threshold.
- */
- template<typename Graph, typename Edge>
- bool operator()(T max_centrality, Edge, const Graph&)
- {
- return (max_centrality / dividend) < threshold;
- }
-
- protected:
- T threshold;
- T dividend;
-};
-
-/** Graph clustering based on edge betweenness centrality.
- *
- * This algorithm implements graph clustering based on edge
- * betweenness centrality. It is an iterative algorithm, where in each
- * step it compute the edge betweenness centrality (via @ref
- * brandes_betweenness_centrality) and removes the edge with the
- * maximum betweenness centrality. The @p done function object
- * determines when the algorithm terminates (the edge found when the
- * algorithm terminates will not be removed).
- *
- * @param g The graph on which clustering will be performed. The type
- * of this parameter (@c MutableGraph) must be a model of the
- * VertexListGraph, IncidenceGraph, EdgeListGraph, and Mutable Graph
- * concepts.
- *
- * @param done The function object that indicates termination of the
- * algorithm. It must be a ternary function object thats accepts the
- * maximum centrality, the descriptor of the edge that will be
- * removed, and the graph @p g.
- *
- * @param edge_centrality (UTIL/OUT) The property map that will store
- * the betweenness centrality for each edge. When the algorithm
- * terminates, it will contain the edge centralities for the
- * graph. The type of this property map must model the
- * ReadWritePropertyMap concept. Defaults to an @c
- * iterator_property_map whose value type is
- * @c Done::centrality_type and using @c get(edge_index, g) for the
- * index map.
- *
- * @param vertex_index (IN) The property map that maps vertices to
- * indices in the range @c [0, num_vertices(g)). This type of this
- * property map must model the ReadablePropertyMap concept and its
- * value type must be an integral type. Defaults to
- * @c get(vertex_index, g).
- */
-template<typename MutableGraph, typename Done, typename EdgeCentralityMap,
- typename VertexIndexMap>
-void
-betweenness_centrality_clustering(MutableGraph& g, Done done,
- EdgeCentralityMap edge_centrality,
- VertexIndexMap vertex_index)
-{
- typedef typename property_traits<EdgeCentralityMap>::value_type
- centrality_type;
- typedef typename graph_traits<MutableGraph>::edge_iterator edge_iterator;
- typedef typename graph_traits<MutableGraph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<MutableGraph>::vertices_size_type
- vertices_size_type;
-
- if (edges(g).first == edges(g).second) return;
-
- // Function object that compares the centrality of edges
- indirect_cmp<EdgeCentralityMap, std::less<centrality_type> >
- cmp(edge_centrality);
-
- bool is_done;
- do {
- brandes_betweenness_centrality(g,
- edge_centrality_map(edge_centrality)
- .vertex_index_map(vertex_index));
- edge_descriptor e = *max_element(edges(g).first, edges(g).second, cmp);
- is_done = done(get(edge_centrality, e), e, g);
- if (!is_done) remove_edge(e, g);
- } while (!is_done && edges(g).first != edges(g).second);
-}
-
-/**
- * \overload
- */
-template<typename MutableGraph, typename Done, typename EdgeCentralityMap>
-void
-betweenness_centrality_clustering(MutableGraph& g, Done done,
- EdgeCentralityMap edge_centrality)
-{
- betweenness_centrality_clustering(g, done, edge_centrality,
- get(vertex_index, g));
-}
-
-/**
- * \overload
- */
-template<typename MutableGraph, typename Done>
-void
-betweenness_centrality_clustering(MutableGraph& g, Done done)
-{
- typedef typename Done::centrality_type centrality_type;
- std::vector<centrality_type> edge_centrality(num_edges(g));
- betweenness_centrality_clustering(g, done,
- make_iterator_property_map(edge_centrality.begin(), get(edge_index, g)),
- get(vertex_index, g));
-}
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_BETWEENNESS_CENTRALITY_CLUSTERING_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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 implements the function
-
- template <class EdgeListGraph, class Size, class P, class T, class R>
- bool bellman_ford_shortest_paths(EdgeListGraph& g, Size N,
- const bgl_named_params<P, T, R>& params)
-
- */
-
-
-#ifndef BOOST_GRAPH_BELLMAN_FORD_SHORTEST_PATHS_HPP
-#define BOOST_GRAPH_BELLMAN_FORD_SHORTEST_PATHS_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/relax.hpp>
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-namespace boost {
-
- template <class Visitor, class Graph>
- struct BellmanFordVisitorConcept {
- void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
- vis.examine_edge(e, g);
- vis.edge_relaxed(e, g);
- vis.edge_not_relaxed(e, g);
- vis.edge_minimized(e, g);
- vis.edge_not_minimized(e, g);
- }
- Visitor vis;
- Graph g;
- typename graph_traits<Graph>::edge_descriptor e;
- };
-
- template <class Visitors = null_visitor>
- class bellman_visitor {
- public:
- bellman_visitor() { }
- bellman_visitor(Visitors vis) : m_vis(vis) { }
-
- template <class Edge, class Graph>
- void examine_edge(Edge u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_examine_edge());
- }
- template <class Edge, class Graph>
- void edge_relaxed(Edge u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_edge_relaxed());
- }
- template <class Edge, class Graph>
- void edge_not_relaxed(Edge u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_edge_not_relaxed());
- }
- template <class Edge, class Graph>
- void edge_minimized(Edge u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_edge_minimized());
- }
- template <class Edge, class Graph>
- void edge_not_minimized(Edge u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_edge_not_minimized());
- }
- protected:
- Visitors m_vis;
- };
- template <class Visitors>
- bellman_visitor<Visitors>
- make_bellman_visitor(Visitors vis) {
- return bellman_visitor<Visitors>(vis);
- }
- typedef bellman_visitor<> default_bellman_visitor;
-
- template <class EdgeListGraph, class Size, class WeightMap,
- class PredecessorMap, class DistanceMap,
- class BinaryFunction, class BinaryPredicate,
- class BellmanFordVisitor>
- bool bellman_ford_shortest_paths(EdgeListGraph& g, Size N,
- WeightMap weight,
- PredecessorMap pred,
- DistanceMap distance,
- BinaryFunction combine,
- BinaryPredicate compare,
- BellmanFordVisitor v)
- {
- function_requires<EdgeListGraphConcept<EdgeListGraph> >();
- typedef graph_traits<EdgeListGraph> GTraits;
- typedef typename GTraits::edge_descriptor Edge;
- typedef typename GTraits::vertex_descriptor Vertex;
- function_requires<ReadWritePropertyMapConcept<DistanceMap, Vertex> >();
- function_requires<ReadablePropertyMapConcept<WeightMap, Edge> >();
- typedef typename property_traits<DistanceMap>::value_type D_value;
- typedef typename property_traits<WeightMap>::value_type W_value;
-
- typename GTraits::edge_iterator i, end;
-
- for (Size k = 0; k < N; ++k) {
- bool at_least_one_edge_relaxed = false;
- for (tie(i, end) = edges(g); i != end; ++i) {
- v.examine_edge(*i, g);
- if (relax(*i, g, weight, pred, distance, combine, compare)) {
- at_least_one_edge_relaxed = true;
- v.edge_relaxed(*i, g);
- } else
- v.edge_not_relaxed(*i, g);
- }
- if (!at_least_one_edge_relaxed)
- break;
- }
-
- for (tie(i, end) = edges(g); i != end; ++i)
- if (compare(combine(get(distance, source(*i, g)), get(weight, *i)),
- get(distance, target(*i,g))))
- {
- v.edge_not_minimized(*i, g);
- return false;
- } else
- v.edge_minimized(*i, g);
-
- return true;
- }
-
- namespace detail {
-
- template<typename VertexAndEdgeListGraph, typename Size,
- typename WeightMap, typename PredecessorMap, typename DistanceMap,
- typename P, typename T, typename R>
- bool
- bellman_dispatch2
- (VertexAndEdgeListGraph& g,
- typename graph_traits<VertexAndEdgeListGraph>::vertex_descriptor s,
- Size N, WeightMap weight, PredecessorMap pred, DistanceMap distance,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_traits<DistanceMap>::value_type D;
- bellman_visitor<> null_vis;
- typedef typename property_traits<WeightMap>::value_type weight_type;
- typename graph_traits<VertexAndEdgeListGraph>::vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- put(distance, *v, (std::numeric_limits<weight_type>::max)());
- put(pred, *v, *v);
- }
- put(distance, s, weight_type(0));
- return bellman_ford_shortest_paths
- (g, N, weight, pred, distance,
- choose_param(get_param(params, distance_combine_t()),
- closed_plus<D>()),
- choose_param(get_param(params, distance_compare_t()),
- std::less<D>()),
- choose_param(get_param(params, graph_visitor),
- null_vis)
- );
- }
-
- template<typename VertexAndEdgeListGraph, typename Size,
- typename WeightMap, typename PredecessorMap, typename DistanceMap,
- typename P, typename T, typename R>
- bool
- bellman_dispatch2
- (VertexAndEdgeListGraph& g,
- detail::error_property_not_found,
- Size N, WeightMap weight, PredecessorMap pred, DistanceMap distance,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_traits<DistanceMap>::value_type D;
- bellman_visitor<> null_vis;
- return bellman_ford_shortest_paths
- (g, N, weight, pred, distance,
- choose_param(get_param(params, distance_combine_t()),
- closed_plus<D>()),
- choose_param(get_param(params, distance_compare_t()),
- std::less<D>()),
- choose_param(get_param(params, graph_visitor),
- null_vis)
- );
- }
-
- template <class EdgeListGraph, class Size, class WeightMap,
- class DistanceMap, class P, class T, class R>
- bool bellman_dispatch(EdgeListGraph& g, Size N,
- WeightMap weight, DistanceMap distance,
- const bgl_named_params<P, T, R>& params)
- {
- dummy_property_map dummy_pred;
- return
- detail::bellman_dispatch2
- (g,
- get_param(params, root_vertex_t()),
- N, weight,
- choose_param(get_param(params, vertex_predecessor), dummy_pred),
- distance,
- params);
- }
- } // namespace detail
-
- template <class EdgeListGraph, class Size, class P, class T, class R>
- bool bellman_ford_shortest_paths
- (EdgeListGraph& g, Size N,
- const bgl_named_params<P, T, R>& params)
- {
- return detail::bellman_dispatch
- (g, N,
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- choose_pmap(get_param(params, vertex_distance), g, vertex_distance),
- params);
- }
-
- template <class EdgeListGraph, class Size>
- bool bellman_ford_shortest_paths(EdgeListGraph& g, Size N)
- {
- bgl_named_params<int,int> params(0);
- return bellman_ford_shortest_paths(g, N, params);
- }
-
- template <class VertexAndEdgeListGraph, class P, class T, class R>
- bool bellman_ford_shortest_paths
- (VertexAndEdgeListGraph& g,
- const bgl_named_params<P, T, R>& params)
- {
- function_requires<VertexListGraphConcept<VertexAndEdgeListGraph> >();
- return detail::bellman_dispatch
- (g, num_vertices(g),
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- choose_pmap(get_param(params, vertex_distance), g, vertex_distance),
- params);
- }
-} // namespace boost
-
-#endif // BOOST_GRAPH_BELLMAN_FORD_SHORTEST_PATHS_HPP
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_BRANDES_BETWEENNESS_CENTRALITY_HPP
-#define BOOST_GRAPH_BRANDES_BETWEENNESS_CENTRALITY_HPP
-
-#include <stack>
-#include <vector>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/graph/relax.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/tuple/tuple.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <algorithm>
-
-namespace boost {
-
-namespace detail { namespace graph {
-
- /**
- * Customized visitor passed to Dijkstra's algorithm by Brandes'
- * betweenness centrality algorithm. This visitor is responsible for
- * keeping track of the order in which vertices are discovered, the
- * predecessors on the shortest path(s) to a vertex, and the number
- * of shortest paths.
- */
- template<typename Graph, typename WeightMap, typename IncomingMap,
- typename DistanceMap, typename PathCountMap>
- struct brandes_dijkstra_visitor : public bfs_visitor<>
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
-
- brandes_dijkstra_visitor(std::stack<vertex_descriptor>& ordered_vertices,
- WeightMap weight,
- IncomingMap incoming,
- DistanceMap distance,
- PathCountMap path_count)
- : ordered_vertices(ordered_vertices), weight(weight),
- incoming(incoming), distance(distance),
- path_count(path_count)
- { }
-
- /**
- * Whenever an edge e = (v, w) is relaxed, the incoming edge list
- * for w is set to {(v, w)} and the shortest path count of w is set to
- * the number of paths that reach {v}.
- */
- void edge_relaxed(edge_descriptor e, const Graph& g)
- {
- vertex_descriptor v = source(e, g), w = target(e, g);
- incoming[w].clear();
- incoming[w].push_back(e);
- put(path_count, w, get(path_count, v));
- }
-
- /**
- * If an edge e = (v, w) was not relaxed, it may still be the case
- * that we've found more equally-short paths, so include {(v, w)} in the
- * incoming edges of w and add all of the shortest paths to v to the
- * shortest path count of w.
- */
- void edge_not_relaxed(edge_descriptor e, const Graph& g)
- {
- typedef typename property_traits<WeightMap>::value_type weight_type;
- typedef typename property_traits<DistanceMap>::value_type distance_type;
- vertex_descriptor v = source(e, g), w = target(e, g);
- distance_type d_v = get(distance, v), d_w = get(distance, w);
- weight_type w_e = get(weight, e);
-
- closed_plus<distance_type> combine;
- if (d_w == combine(d_v, w_e)) {
- put(path_count, w, get(path_count, w) + get(path_count, v));
- incoming[w].push_back(e);
- }
- }
-
- /// Keep track of vertices as they are reached
- void examine_vertex(vertex_descriptor w, const Graph&)
- {
- ordered_vertices.push(w);
- }
-
- private:
- std::stack<vertex_descriptor>& ordered_vertices;
- WeightMap weight;
- IncomingMap incoming;
- DistanceMap distance;
- PathCountMap path_count;
- };
-
- /**
- * Function object that calls Dijkstra's shortest paths algorithm
- * using the Dijkstra visitor for the Brandes betweenness centrality
- * algorithm.
- */
- template<typename WeightMap>
- struct brandes_dijkstra_shortest_paths
- {
- brandes_dijkstra_shortest_paths(WeightMap weight_map)
- : weight_map(weight_map) { }
-
- template<typename Graph, typename IncomingMap, typename DistanceMap,
- typename PathCountMap, typename VertexIndexMap>
- void
- operator()(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor s,
- std::stack<typename graph_traits<Graph>::vertex_descriptor>& ov,
- IncomingMap incoming,
- DistanceMap distance,
- PathCountMap path_count,
- VertexIndexMap vertex_index)
- {
- typedef brandes_dijkstra_visitor<Graph, WeightMap, IncomingMap,
- DistanceMap, PathCountMap> visitor_type;
- visitor_type visitor(ov, weight_map, incoming, distance, path_count);
-
- dijkstra_shortest_paths(g, s,
- boost::weight_map(weight_map)
- .vertex_index_map(vertex_index)
- .distance_map(distance)
- .visitor(visitor));
- }
-
- private:
- WeightMap weight_map;
- };
-
- /**
- * Function object that invokes breadth-first search for the
- * unweighted form of the Brandes betweenness centrality algorithm.
- */
- struct brandes_unweighted_shortest_paths
- {
- /**
- * Customized visitor passed to breadth-first search, which
- * records predecessor and the number of shortest paths to each
- * vertex.
- */
- template<typename Graph, typename IncomingMap, typename DistanceMap,
- typename PathCountMap>
- struct visitor_type : public bfs_visitor<>
- {
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<Graph>::vertex_descriptor
- vertex_descriptor;
-
- visitor_type(IncomingMap incoming, DistanceMap distance,
- PathCountMap path_count,
- std::stack<vertex_descriptor>& ordered_vertices)
- : incoming(incoming), distance(distance),
- path_count(path_count), ordered_vertices(ordered_vertices) { }
-
- /// Keep track of vertices as they are reached
- void examine_vertex(vertex_descriptor v, Graph&)
- {
- ordered_vertices.push(v);
- }
-
- /**
- * Whenever an edge e = (v, w) is labelled a tree edge, the
- * incoming edge list for w is set to {(v, w)} and the shortest
- * path count of w is set to the number of paths that reach {v}.
- */
- void tree_edge(edge_descriptor e, Graph& g)
- {
- vertex_descriptor v = source(e, g);
- vertex_descriptor w = target(e, g);
- put(distance, w, get(distance, v) + 1);
-
- put(path_count, w, get(path_count, v));
- incoming[w].push_back(e);
- }
-
- /**
- * If an edge e = (v, w) is not a tree edge, it may still be the
- * case that we've found more equally-short paths, so include (v, w)
- * in the incoming edge list of w and add all of the shortest
- * paths to v to the shortest path count of w.
- */
- void non_tree_edge(edge_descriptor e, Graph& g)
- {
- vertex_descriptor v = source(e, g);
- vertex_descriptor w = target(e, g);
- if (get(distance, w) == get(distance, v) + 1) {
- put(path_count, w, get(path_count, w) + get(path_count, v));
- incoming[w].push_back(e);
- }
- }
-
- private:
- IncomingMap incoming;
- DistanceMap distance;
- PathCountMap path_count;
- std::stack<vertex_descriptor>& ordered_vertices;
- };
-
- template<typename Graph, typename IncomingMap, typename DistanceMap,
- typename PathCountMap, typename VertexIndexMap>
- void
- operator()(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor s,
- std::stack<typename graph_traits<Graph>::vertex_descriptor>& ov,
- IncomingMap incoming,
- DistanceMap distance,
- PathCountMap path_count,
- VertexIndexMap vertex_index)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor
- vertex_descriptor;
-
- visitor_type<Graph, IncomingMap, DistanceMap, PathCountMap>
- visitor(incoming, distance, path_count, ov);
-
- std::vector<default_color_type>
- colors(num_vertices(g), color_traits<default_color_type>::white());
- boost::queue<vertex_descriptor> Q;
- breadth_first_visit(g, s, Q, visitor,
- make_iterator_property_map(colors.begin(),
- vertex_index));
- }
- };
-
- // When the edge centrality map is a dummy property map, no
- // initialization is needed.
- template<typename Iter>
- inline void
- init_centrality_map(std::pair<Iter, Iter>, dummy_property_map) { }
-
- // When we have a real edge centrality map, initialize all of the
- // centralities to zero.
- template<typename Iter, typename Centrality>
- void
- init_centrality_map(std::pair<Iter, Iter> keys, Centrality centrality_map)
- {
- typedef typename property_traits<Centrality>::value_type
- centrality_type;
- while (keys.first != keys.second) {
- put(centrality_map, *keys.first, centrality_type(0));
- ++keys.first;
- }
- }
-
- // When the edge centrality map is a dummy property map, no update
- // is performed.
- template<typename Key, typename T>
- inline void
- update_centrality(dummy_property_map, const Key&, const T&) { }
-
- // When we have a real edge centrality map, add the value to the map
- template<typename CentralityMap, typename Key, typename T>
- inline void
- update_centrality(CentralityMap centrality_map, Key k, const T& x)
- { put(centrality_map, k, get(centrality_map, k) + x); }
-
- template<typename Iter>
- inline void
- divide_centrality_by_two(std::pair<Iter, Iter>, dummy_property_map) {}
-
- template<typename Iter, typename CentralityMap>
- inline void
- divide_centrality_by_two(std::pair<Iter, Iter> keys,
- CentralityMap centrality_map)
- {
- typename property_traits<CentralityMap>::value_type two(2);
- while (keys.first != keys.second) {
- put(centrality_map, *keys.first, get(centrality_map, *keys.first) / two);
- ++keys.first;
- }
- }
-
- template<typename Graph, typename CentralityMap, typename EdgeCentralityMap,
- typename IncomingMap, typename DistanceMap,
- typename DependencyMap, typename PathCountMap,
- typename VertexIndexMap, typename ShortestPaths>
- void
- brandes_betweenness_centrality_impl(const Graph& g,
- CentralityMap centrality, // C_B
- EdgeCentralityMap edge_centrality_map,
- IncomingMap incoming, // P
- DistanceMap distance, // d
- DependencyMap dependency, // delta
- PathCountMap path_count, // sigma
- VertexIndexMap vertex_index,
- ShortestPaths shortest_paths)
- {
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- typedef typename graph_traits<Graph>::edge_iterator edge_iterator;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
-
- // Initialize centrality
- init_centrality_map(vertices(g), centrality);
- init_centrality_map(edges(g), edge_centrality_map);
-
- std::stack<vertex_descriptor> ordered_vertices;
- vertex_iterator s, s_end;
- for (tie(s, s_end) = vertices(g); s != s_end; ++s) {
- // Initialize for this iteration
- vertex_iterator w, w_end;
- for (tie(w, w_end) = vertices(g); w != w_end; ++w) {
- incoming[*w].clear();
- put(path_count, *w, 0);
- put(dependency, *w, 0);
- }
- put(path_count, *s, 1);
-
- // Execute the shortest paths algorithm. This will be either
- // Dijkstra's algorithm or a customized breadth-first search,
- // depending on whether the graph is weighted or unweighted.
- shortest_paths(g, *s, ordered_vertices, incoming, distance,
- path_count, vertex_index);
-
- while (!ordered_vertices.empty()) {
- vertex_descriptor w = ordered_vertices.top();
- ordered_vertices.pop();
-
- typedef typename property_traits<IncomingMap>::value_type
- incoming_type;
- typedef typename incoming_type::iterator incoming_iterator;
- typedef typename property_traits<DependencyMap>::value_type
- dependency_type;
-
- for (incoming_iterator vw = incoming[w].begin();
- vw != incoming[w].end(); ++vw) {
- vertex_descriptor v = source(*vw, g);
- dependency_type factor = dependency_type(get(path_count, v))
- / dependency_type(get(path_count, w));
- factor *= (dependency_type(1) + get(dependency, w));
- put(dependency, v, get(dependency, v) + factor);
- update_centrality(edge_centrality_map, *vw, factor);
- }
-
- if (w != *s) {
- update_centrality(centrality, w, get(dependency, w));
- }
- }
- }
-
- typedef typename graph_traits<Graph>::directed_category directed_category;
- const bool is_undirected =
- is_convertible<directed_category*, undirected_tag*>::value;
- if (is_undirected) {
- divide_centrality_by_two(vertices(g), centrality);
- divide_centrality_by_two(edges(g), edge_centrality_map);
- }
- }
-
-} } // end namespace detail::graph
-
-template<typename Graph, typename CentralityMap, typename EdgeCentralityMap,
- typename IncomingMap, typename DistanceMap,
- typename DependencyMap, typename PathCountMap,
- typename VertexIndexMap>
-void
-brandes_betweenness_centrality(const Graph& g,
- CentralityMap centrality, // C_B
- EdgeCentralityMap edge_centrality_map,
- IncomingMap incoming, // P
- DistanceMap distance, // d
- DependencyMap dependency, // delta
- PathCountMap path_count, // sigma
- VertexIndexMap vertex_index)
-{
- detail::graph::brandes_unweighted_shortest_paths shortest_paths;
-
- detail::graph::brandes_betweenness_centrality_impl(g, centrality,
- edge_centrality_map,
- incoming, distance,
- dependency, path_count,
- vertex_index,
- shortest_paths);
-}
-
-template<typename Graph, typename CentralityMap, typename EdgeCentralityMap,
- typename IncomingMap, typename DistanceMap,
- typename DependencyMap, typename PathCountMap,
- typename VertexIndexMap, typename WeightMap>
-void
-brandes_betweenness_centrality(const Graph& g,
- CentralityMap centrality, // C_B
- EdgeCentralityMap edge_centrality_map,
- IncomingMap incoming, // P
- DistanceMap distance, // d
- DependencyMap dependency, // delta
- PathCountMap path_count, // sigma
- VertexIndexMap vertex_index,
- WeightMap weight_map)
-{
- detail::graph::brandes_dijkstra_shortest_paths<WeightMap>
- shortest_paths(weight_map);
-
- detail::graph::brandes_betweenness_centrality_impl(g, centrality,
- edge_centrality_map,
- incoming, distance,
- dependency, path_count,
- vertex_index,
- shortest_paths);
-}
-
-namespace detail { namespace graph {
- template<typename Graph, typename CentralityMap, typename EdgeCentralityMap,
- typename WeightMap, typename VertexIndexMap>
- void
- brandes_betweenness_centrality_dispatch2(const Graph& g,
- CentralityMap centrality,
- EdgeCentralityMap edge_centrality_map,
- WeightMap weight_map,
- VertexIndexMap vertex_index)
- {
- typedef typename graph_traits<Graph>::degree_size_type degree_size_type;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename mpl::if_c<(is_same<CentralityMap,
- dummy_property_map>::value),
- EdgeCentralityMap,
- CentralityMap>::type a_centrality_map;
- typedef typename property_traits<a_centrality_map>::value_type
- centrality_type;
-
- typename graph_traits<Graph>::vertices_size_type V = num_vertices(g);
-
- std::vector<std::vector<edge_descriptor> > incoming(V);
- std::vector<centrality_type> distance(V);
- std::vector<centrality_type> dependency(V);
- std::vector<degree_size_type> path_count(V);
-
- brandes_betweenness_centrality(
- g, centrality, edge_centrality_map,
- make_iterator_property_map(incoming.begin(), vertex_index),
- make_iterator_property_map(distance.begin(), vertex_index),
- make_iterator_property_map(dependency.begin(), vertex_index),
- make_iterator_property_map(path_count.begin(), vertex_index),
- vertex_index,
- weight_map);
- }
-
-
- template<typename Graph, typename CentralityMap, typename EdgeCentralityMap,
- typename VertexIndexMap>
- void
- brandes_betweenness_centrality_dispatch2(const Graph& g,
- CentralityMap centrality,
- EdgeCentralityMap edge_centrality_map,
- VertexIndexMap vertex_index)
- {
- typedef typename graph_traits<Graph>::degree_size_type degree_size_type;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename mpl::if_c<(is_same<CentralityMap,
- dummy_property_map>::value),
- EdgeCentralityMap,
- CentralityMap>::type a_centrality_map;
- typedef typename property_traits<a_centrality_map>::value_type
- centrality_type;
-
- typename graph_traits<Graph>::vertices_size_type V = num_vertices(g);
-
- std::vector<std::vector<edge_descriptor> > incoming(V);
- std::vector<centrality_type> distance(V);
- std::vector<centrality_type> dependency(V);
- std::vector<degree_size_type> path_count(V);
-
- brandes_betweenness_centrality(
- g, centrality, edge_centrality_map,
- make_iterator_property_map(incoming.begin(), vertex_index),
- make_iterator_property_map(distance.begin(), vertex_index),
- make_iterator_property_map(dependency.begin(), vertex_index),
- make_iterator_property_map(path_count.begin(), vertex_index),
- vertex_index);
- }
-
- template<typename WeightMap>
- struct brandes_betweenness_centrality_dispatch1
- {
- template<typename Graph, typename CentralityMap,
- typename EdgeCentralityMap, typename VertexIndexMap>
- static void
- run(const Graph& g, CentralityMap centrality,
- EdgeCentralityMap edge_centrality_map, VertexIndexMap vertex_index,
- WeightMap weight_map)
- {
- brandes_betweenness_centrality_dispatch2(g, centrality, edge_centrality_map,
- weight_map, vertex_index);
- }
- };
-
- template<>
- struct brandes_betweenness_centrality_dispatch1<error_property_not_found>
- {
- template<typename Graph, typename CentralityMap,
- typename EdgeCentralityMap, typename VertexIndexMap>
- static void
- run(const Graph& g, CentralityMap centrality,
- EdgeCentralityMap edge_centrality_map, VertexIndexMap vertex_index,
- error_property_not_found)
- {
- brandes_betweenness_centrality_dispatch2(g, centrality, edge_centrality_map,
- vertex_index);
- }
- };
-
-} } // end namespace detail::graph
-
-template<typename Graph, typename Param, typename Tag, typename Rest>
-void
-brandes_betweenness_centrality(const Graph& g,
- const bgl_named_params<Param,Tag,Rest>& params)
-{
- typedef bgl_named_params<Param,Tag,Rest> named_params;
-
- typedef typename property_value<named_params, edge_weight_t>::type ew;
- detail::graph::brandes_betweenness_centrality_dispatch1<ew>::run(
- g,
- choose_param(get_param(params, vertex_centrality),
- dummy_property_map()),
- choose_param(get_param(params, edge_centrality),
- dummy_property_map()),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
- get_param(params, edge_weight));
-}
-
-template<typename Graph, typename CentralityMap>
-void
-brandes_betweenness_centrality(const Graph& g, CentralityMap centrality)
-{
- detail::graph::brandes_betweenness_centrality_dispatch2(
- g, centrality, dummy_property_map(), get(vertex_index, g));
-}
-
-template<typename Graph, typename CentralityMap, typename EdgeCentralityMap>
-void
-brandes_betweenness_centrality(const Graph& g, CentralityMap centrality,
- EdgeCentralityMap edge_centrality_map)
-{
- detail::graph::brandes_betweenness_centrality_dispatch2(
- g, centrality, edge_centrality_map, get(vertex_index, g));
-}
-
-/**
- * Converts "absolute" betweenness centrality (as computed by the
- * brandes_betweenness_centrality algorithm) in the centrality map
- * into "relative" centrality. The result is placed back into the
- * given centrality map.
- */
-template<typename Graph, typename CentralityMap>
-void
-relative_betweenness_centrality(const Graph& g, CentralityMap centrality)
-{
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- typedef typename property_traits<CentralityMap>::value_type centrality_type;
-
- typename graph_traits<Graph>::vertices_size_type n = num_vertices(g);
- centrality_type factor = centrality_type(2)/centrality_type(n*n - 3*n + 2);
- vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- put(centrality, *v, factor * get(centrality, *v));
- }
-}
-
-// Compute the central point dominance of a graph.
-template<typename Graph, typename CentralityMap>
-typename property_traits<CentralityMap>::value_type
-central_point_dominance(const Graph& g, CentralityMap centrality)
-{
- using std::max;
-
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- typedef typename property_traits<CentralityMap>::value_type centrality_type;
-
- typename graph_traits<Graph>::vertices_size_type n = num_vertices(g);
-
- // Find max centrality
- centrality_type max_centrality(0);
- vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- max_centrality = (max)(max_centrality, get(centrality, *v));
- }
-
- // Compute central point dominance
- centrality_type sum(0);
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- sum += (max_centrality - get(centrality, *v));
- }
- return sum/(n-1);
-}
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_BRANDES_BETWEENNESS_CENTRALITY_HPP
+++ /dev/null
-// Copyright (c) Jeremy Siek 2001
-// Copyright (c) Douglas Gregor 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)
-
-// NOTE: this final is generated by libs/graph/doc/biconnected_components.w
-
-#ifndef BOOST_GRAPH_BICONNECTED_COMPONENTS_HPP
-#define BOOST_GRAPH_BICONNECTED_COMPONENTS_HPP
-
-#include <stack>
-#include <vector>
-#include <algorithm> // for std::min and std::max
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/depth_first_search.hpp>
-#include <boost/graph/graph_utility.hpp>
-
-namespace boost
-{
- namespace detail
- {
- template<typename ComponentMap, typename DiscoverTimeMap,
- typename LowPointMap, typename PredecessorMap,
- typename OutputIterator, typename Stack>
- struct biconnected_components_visitor : public dfs_visitor<>
- {
- biconnected_components_visitor
- (ComponentMap comp, std::size_t& c, DiscoverTimeMap dtm,
- std::size_t& dfs_time, LowPointMap lowpt, PredecessorMap pred,
- OutputIterator out, Stack& S)
- : comp(comp), c(c), dtm(dtm), dfs_time(dfs_time), lowpt(lowpt),
- pred(pred), out(out), S(S) { }
-
- template <typename Vertex, typename Graph>
- void start_vertex(const Vertex& u, Graph&)
- {
- put(pred, u, u);
- }
-
- template <typename Vertex, typename Graph>
- void discover_vertex(const Vertex& u, Graph&)
- {
- put(dtm, u, ++dfs_time);
- put(lowpt, u, get(dtm, u));
- }
-
- template <typename Edge, typename Graph>
- void tree_edge(const Edge& e, Graph& g)
- {
- S.push(e);
- put(pred, target(e, g), source(e, g));
- }
-
- template <typename Edge, typename Graph>
- void back_edge(const Edge& e, Graph& g)
- {
- BOOST_USING_STD_MIN();
-
- if ( target(e, g) != get(pred, source(e, g)) ) {
- S.push(e);
- put(lowpt, source(e, g),
- min BOOST_PREVENT_MACRO_SUBSTITUTION(get(lowpt, source(e, g)),
- get(dtm, target(e, g))));
- }
- }
-
- template <typename Vertex, typename Graph>
- void finish_vertex(const Vertex& u, Graph& g)
- {
- BOOST_USING_STD_MIN();
- Vertex parent = get(pred, u);
- bool is_art_point = false;
- if ( get(dtm, parent) > get(dtm, u) ) {
- parent = get(pred, parent);
- is_art_point = true;
- }
-
- if ( parent == u ) { // at top
- if ( get(dtm, u) + 1 == get(dtm, get(pred, u)) )
- is_art_point = false;
- } else {
- put(lowpt, parent,
- min BOOST_PREVENT_MACRO_SUBSTITUTION(get(lowpt, parent),
- get(lowpt, u)));
-
- if (get(lowpt, u) >= get(dtm, parent)) {
- if ( get(dtm, parent) > get(dtm, get(pred, parent)) ) {
- put(pred, u, get(pred, parent));
- put(pred, parent, u);
- }
-
- while ( get(dtm, source(S.top(), g)) >= get(dtm, u) ) {
- put(comp, S.top(), c);
- S.pop();
- }
- put(comp, S.top(), c);
- S.pop();
- ++c;
- if ( S.empty() ) {
- put(pred, u, parent);
- put(pred, parent, u);
- }
- }
- }
- if ( is_art_point )
- *out++ = u;
- }
-
- ComponentMap comp;
- std::size_t& c;
- DiscoverTimeMap dtm;
- std::size_t& dfs_time;
- LowPointMap lowpt;
- PredecessorMap pred;
- OutputIterator out;
- Stack& S;
- };
- } // namespace detail
-
- template<typename Graph, typename ComponentMap, typename OutputIterator,
- typename DiscoverTimeMap, typename LowPointMap,
- typename PredecessorMap, typename VertexIndexMap>
- std::pair<std::size_t, OutputIterator>
- biconnected_components(const Graph & g, ComponentMap comp,
- OutputIterator out, DiscoverTimeMap discover_time,
- LowPointMap lowpt, PredecessorMap pred,
- VertexIndexMap index_map)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename graph_traits<Graph>::edge_descriptor edge_t;
- function_requires<VertexListGraphConcept<Graph> >();
- function_requires<IncidenceGraphConcept<Graph> >();
- function_requires<WritablePropertyMapConcept<ComponentMap, edge_t> >();
- function_requires<ReadWritePropertyMapConcept<DiscoverTimeMap,
- vertex_t> >();
- function_requires<ReadWritePropertyMapConcept<LowPointMap, vertex_t > >();
- function_requires<ReadWritePropertyMapConcept<PredecessorMap,
- vertex_t> >();
-
- std::size_t num_components = 0;
- std::size_t dfs_time = 0;
- std::stack < edge_t > S;
-
- detail::biconnected_components_visitor<ComponentMap, DiscoverTimeMap,
- LowPointMap, PredecessorMap, OutputIterator, std::stack<edge_t> >
- vis(comp, num_components, discover_time, dfs_time, lowpt, pred, out, S);
-
- depth_first_search(g, visitor(vis).vertex_index_map(index_map));
-
- return std::pair<std::size_t, OutputIterator>(num_components, vis.out);
- }
-
- template<typename Graph, typename ComponentMap, typename OutputIterator,
- typename DiscoverTimeMap, typename LowPointMap,
- typename VertexIndexMap>
- std::pair<std::size_t, OutputIterator>
- biconnected_components(const Graph & g, ComponentMap comp,
- OutputIterator out, DiscoverTimeMap discover_time,
- LowPointMap lowpt, VertexIndexMap index_map)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- std::vector<vertex_t> pred(num_vertices(g));
- vertex_t vert = graph_traits<Graph>::null_vertex();
- return biconnected_components
- (g, comp, out, discover_time, lowpt,
- make_iterator_property_map(pred.begin(), index_map, vert),
- index_map);
- }
-
- template<typename Graph, typename ComponentMap, typename OutputIterator,
- typename VertexIndexMap>
- std::pair<std::size_t, OutputIterator>
- biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out,
- VertexIndexMap index_map)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename graph_traits<Graph>::vertices_size_type
- vertices_size_type;
-
- std::vector<vertices_size_type> discover_time(num_vertices(g));
- std::vector<vertices_size_type> lowpt(num_vertices(g));
-
- vertices_size_type vst(0);
-
- return biconnected_components
- (g, comp, out,
- make_iterator_property_map(discover_time.begin(), index_map, vst),
- make_iterator_property_map(lowpt.begin(), index_map, vst),
- index_map);
- }
-
- template < typename Graph, typename ComponentMap, typename OutputIterator>
- std::pair<std::size_t, OutputIterator>
- biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out)
- {
- return biconnected_components(g, comp, out, get(vertex_index, g));
- }
-
- namespace graph_detail {
- struct dummy_output_iterator
- {
- typedef std::output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void pointer;
- typedef void difference_type;
-
- struct reference {
- template<typename T>
- reference& operator=(const T&) { return *this; }
- };
-
- reference operator*() const { return reference(); }
- dummy_output_iterator& operator++() { return *this; }
- dummy_output_iterator operator++(int) { return *this; }
- };
- } // end namespace graph_detail
-
- template <typename Graph, typename ComponentMap>
- std::size_t
- biconnected_components(const Graph& g, ComponentMap comp)
- {
- return biconnected_components(g, comp,
- graph_detail::dummy_output_iterator()).first;
- }
-
- template<typename Graph, typename OutputIterator, typename VertexIndexMap>
- OutputIterator
- articulation_points(const Graph& g, OutputIterator out,
- VertexIndexMap index_map)
- {
- return biconnected_components(g, dummy_property_map(), out,
- index_map).second;
- }
-
- template<typename Graph, typename OutputIterator>
- OutputIterator
- articulation_points(const Graph& g, OutputIterator out)
- {
- return biconnected_components(g, dummy_property_map(), out,
- get(vertex_index, g)).second;
- }
-
-} // namespace boost
-
-#endif /* BOOST_GRAPH_BICONNECTED_COMPONENTS_HPP */
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_BREADTH_FIRST_SEARCH_HPP
-#define BOOST_GRAPH_BREADTH_FIRST_SEARCH_HPP
-
-/*
- Breadth First Search Algorithm (Cormen, Leiserson, and Rivest p. 470)
-*/
-#include <boost/config.hpp>
-#include <vector>
-#include <boost/pending/queue.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-namespace boost {
-
- template <class Visitor, class Graph>
- struct BFSVisitorConcept {
- void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
- vis.initialize_vertex(u, g);
- vis.discover_vertex(u, g);
- vis.examine_vertex(u, g);
- vis.examine_edge(e, g);
- vis.tree_edge(e, g);
- vis.non_tree_edge(e, g);
- vis.gray_target(e, g);
- vis.black_target(e, g);
- vis.finish_vertex(u, g);
- }
- Visitor vis;
- Graph g;
- typename graph_traits<Graph>::vertex_descriptor u;
- typename graph_traits<Graph>::edge_descriptor e;
- };
-
-
- template <class IncidenceGraph, class Buffer, class BFSVisitor,
- class ColorMap>
- void breadth_first_visit
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor s,
- Buffer& Q, BFSVisitor vis, ColorMap color)
- {
- function_requires< IncidenceGraphConcept<IncidenceGraph> >();
- typedef graph_traits<IncidenceGraph> GTraits;
- typedef typename GTraits::vertex_descriptor Vertex;
- typedef typename GTraits::edge_descriptor Edge;
- function_requires< BFSVisitorConcept<BFSVisitor, IncidenceGraph> >();
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename GTraits::out_edge_iterator ei, ei_end;
-
- put(color, s, Color::gray()); vis.discover_vertex(s, g);
- Q.push(s);
- while (! Q.empty()) {
- Vertex u = Q.top(); Q.pop(); vis.examine_vertex(u, g);
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
- Vertex v = target(*ei, g); vis.examine_edge(*ei, g);
- ColorValue v_color = get(color, v);
- if (v_color == Color::white()) { vis.tree_edge(*ei, g);
- put(color, v, Color::gray()); vis.discover_vertex(v, g);
- Q.push(v);
- } else { vis.non_tree_edge(*ei, g);
- if (v_color == Color::gray()) vis.gray_target(*ei, g);
- else vis.black_target(*ei, g);
- }
- } // end for
- put(color, u, Color::black()); vis.finish_vertex(u, g);
- } // end while
- } // breadth_first_visit
-
-
- template <class VertexListGraph, class Buffer, class BFSVisitor,
- class ColorMap>
- void breadth_first_search
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- Buffer& Q, BFSVisitor vis, ColorMap color)
- {
- // Initialization
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename boost::graph_traits<VertexListGraph>::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i) {
- put(color, *i, Color::white());
- vis.initialize_vertex(*i, g);
- }
- breadth_first_visit(g, s, Q, vis, color);
- }
-
-
- template <class Visitors = null_visitor>
- class bfs_visitor {
- public:
- bfs_visitor() { }
- bfs_visitor(Visitors vis) : m_vis(vis) { }
-
- template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_initialize_vertex());
- }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_discover_vertex());
- }
- template <class Vertex, class Graph>
- void examine_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_examine_vertex());
- }
- template <class Edge, class Graph>
- void examine_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, ::boost::on_examine_edge());
- }
- template <class Edge, class Graph>
- void tree_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, ::boost::on_tree_edge());
- }
- template <class Edge, class Graph>
- void non_tree_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, ::boost::on_non_tree_edge());
- }
- template <class Edge, class Graph>
- void gray_target(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, ::boost::on_gray_target());
- }
- template <class Edge, class Graph>
- void black_target(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, ::boost::on_black_target());
- }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_finish_vertex());
- }
-
- BOOST_GRAPH_EVENT_STUB(on_initialize_vertex,bfs)
- BOOST_GRAPH_EVENT_STUB(on_discover_vertex,bfs)
- BOOST_GRAPH_EVENT_STUB(on_examine_vertex,bfs)
- BOOST_GRAPH_EVENT_STUB(on_examine_edge,bfs)
- BOOST_GRAPH_EVENT_STUB(on_tree_edge,bfs)
- BOOST_GRAPH_EVENT_STUB(on_non_tree_edge,bfs)
- BOOST_GRAPH_EVENT_STUB(on_gray_target,bfs)
- BOOST_GRAPH_EVENT_STUB(on_black_target,bfs)
- BOOST_GRAPH_EVENT_STUB(on_finish_vertex,bfs)
-
- protected:
- Visitors m_vis;
- };
- template <class Visitors>
- bfs_visitor<Visitors>
- make_bfs_visitor(Visitors vis) {
- return bfs_visitor<Visitors>(vis);
- }
- typedef bfs_visitor<> default_bfs_visitor;
-
-
- namespace detail {
-
- template <class VertexListGraph, class ColorMap, class BFSVisitor,
- class P, class T, class R>
- void bfs_helper
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- ColorMap color,
- BFSVisitor vis,
- const bgl_named_params<P, T, R>& params)
- {
- typedef graph_traits<VertexListGraph> Traits;
- // Buffer default
- typedef typename Traits::vertex_descriptor Vertex;
- typedef boost::queue<Vertex> queue_t;
- queue_t Q;
- detail::wrap_ref<queue_t> Qref(Q);
- breadth_first_search
- (g, s,
- choose_param(get_param(params, buffer_param_t()), Qref).ref,
- vis, color);
- }
-
- //-------------------------------------------------------------------------
- // Choose between default color and color parameters. Using
- // function dispatching so that we don't require vertex index if
- // the color default is not being used.
-
- template <class ColorMap>
- struct bfs_dispatch {
- template <class VertexListGraph, class P, class T, class R>
- static void apply
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params,
- ColorMap color)
- {
- bfs_helper
- (g, s, color,
- choose_param(get_param(params, graph_visitor),
- make_bfs_visitor(null_visitor())),
- params);
- }
- };
-
- template <>
- struct bfs_dispatch<detail::error_property_not_found> {
- template <class VertexListGraph, class P, class T, class R>
- static void apply
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- std::vector<default_color_type> color_vec(num_vertices(g));
- default_color_type c = white_color;
- null_visitor null_vis;
-
- bfs_helper
- (g, s,
- make_iterator_property_map
- (color_vec.begin(),
- choose_const_pmap(get_param(params, vertex_index),
- g, vertex_index), c),
- choose_param(get_param(params, graph_visitor),
- make_bfs_visitor(null_vis)),
- params);
- }
- };
-
- } // namespace detail
-
-
- // Named Parameter Variant
- template <class VertexListGraph, class P, class T, class R>
- void breadth_first_search
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params)
- {
- // The graph is passed by *const* reference so that graph adaptors
- // (temporaries) can be passed into this function. However, the
- // graph is not really const since we may write to property maps
- // of the graph.
- VertexListGraph& ng = const_cast<VertexListGraph&>(g);
- typedef typename property_value< bgl_named_params<P,T,R>,
- vertex_color_t>::type C;
- detail::bfs_dispatch<C>::apply(ng, s, params,
- get_param(params, vertex_color));
- }
-
-
- // This version does not initialize colors, user has to.
-
- template <class IncidenceGraph, class P, class T, class R>
- void breadth_first_visit
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params)
- {
- // The graph is passed by *const* reference so that graph adaptors
- // (temporaries) can be passed into this function. However, the
- // graph is not really const since we may write to property maps
- // of the graph.
- IncidenceGraph& ng = const_cast<IncidenceGraph&>(g);
-
- typedef graph_traits<IncidenceGraph> Traits;
- // Buffer default
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef boost::queue<vertex_descriptor> queue_t;
- queue_t Q;
- detail::wrap_ref<queue_t> Qref(Q);
-
- breadth_first_visit
- (ng, s,
- choose_param(get_param(params, buffer_param_t()), Qref).ref,
- choose_param(get_param(params, graph_visitor),
- make_bfs_visitor(null_visitor())),
- choose_pmap(get_param(params, vertex_color), ng, vertex_color)
- );
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_BREADTH_FIRST_SEARCH_HPP
-
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_CIRCLE_LAYOUT_HPP
-#define BOOST_GRAPH_CIRCLE_LAYOUT_HPP
-#include <cmath>
-#include <utility>
-#include <boost/graph/graph_traits.hpp>
-
-namespace boost {
- /**
- * \brief Layout the graph with the vertices at the points of a regular
- * n-polygon.
- *
- * The distance from the center of the polygon to each point is
- * determined by the @p radius parameter. The @p position parameter
- * must be an Lvalue Property Map whose value type is a class type
- * containing @c x and @c y members that will be set to the @c x and
- * @c y coordinates.
- */
- template<typename VertexListGraph, typename PositionMap, typename Radius>
- void
- circle_graph_layout(const VertexListGraph& g, PositionMap position,
- Radius radius)
- {
- const double pi = 3.14159;
-
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sin;
- using std::cos;
-#endif // BOOST_NO_STDC_NAMESPACE
-
- typedef typename graph_traits<VertexListGraph>::vertices_size_type
- vertices_size_type;
-
- vertices_size_type n = num_vertices(g);
-
- typedef typename graph_traits<VertexListGraph>::vertex_iterator
- vertex_iterator;
-
- vertices_size_type i = 0;
- for(std::pair<vertex_iterator, vertex_iterator> v = vertices(g);
- v.first != v.second; ++v.first, ++i) {
- position[*v.first].x = radius * cos(i * 2 * pi / n);
- position[*v.first].y = radius * sin(i * 2 * pi / n);
- }
- }
-} // end namespace boost
-
-#endif // BOOST_GRAPH_CIRCLE_LAYOUT_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997-2001 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_CONNECTED_COMPONENTS_HPP
-#define BOOST_GRAPH_CONNECTED_COMPONENTS_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/depth_first_search.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/graph_concepts.hpp>
-
-#include <boost/static_assert.hpp>
-
-namespace boost {
-
- namespace detail {
-
- // This visitor is used both in the connected_components algorithm
- // and in the kosaraju strong components algorithm during the
- // second DFS traversal.
- template <class ComponentsMap>
- class components_recorder : public dfs_visitor<>
- {
- typedef typename property_traits<ComponentsMap>::value_type comp_type;
- public:
- components_recorder(ComponentsMap c,
- comp_type& c_count)
- : m_component(c), m_count(c_count) {}
-
- template <class Vertex, class Graph>
- void start_vertex(Vertex, Graph&) {
- if (m_count == (std::numeric_limits<comp_type>::max)())
- m_count = 0; // start counting components at zero
- else
- ++m_count;
- }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph&) {
- put(m_component, u, m_count);
- }
- protected:
- ComponentsMap m_component;
- comp_type& m_count;
- };
-
- } // namespace detail
-
- // This function computes the connected components of an undirected
- // graph using a single application of depth first search.
-
- template <class Graph, class ComponentMap, class P, class T, class R>
- inline typename property_traits<ComponentMap>::value_type
- connected_components(const Graph& g, ComponentMap c,
- const bgl_named_params<P, T, R>& params)
- {
- if (num_vertices(g) == 0) return 0;
-
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< WritablePropertyMapConcept<ComponentMap, Vertex> >();
- typedef typename boost::graph_traits<Graph>::directed_category directed;
- BOOST_STATIC_ASSERT((boost::is_same<directed, undirected_tag>::value));
-
- typedef typename property_traits<ComponentMap>::value_type comp_type;
- // c_count initialized to "nil" (with nil represented by (max)())
- comp_type c_count((std::numeric_limits<comp_type>::max)());
- detail::components_recorder<ComponentMap> vis(c, c_count);
- depth_first_search(g, params.visitor(vis));
- return c_count + 1;
- }
-
- template <class Graph, class ComponentMap>
- inline typename property_traits<ComponentMap>::value_type
- connected_components(const Graph& g, ComponentMap c)
- {
- if (num_vertices(g) == 0) return 0;
-
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< WritablePropertyMapConcept<ComponentMap, Vertex> >();
- typedef typename boost::graph_traits<Graph>::directed_category directed;
- BOOST_STATIC_ASSERT((boost::is_same<directed, undirected_tag>::value));
-
- typedef typename property_traits<ComponentMap>::value_type comp_type;
- // c_count initialized to "nil" (with nil represented by (max)())
- comp_type c_count((std::numeric_limits<comp_type>::max)());
- detail::components_recorder<ComponentMap> vis(c, c_count);
- depth_first_search(g, visitor(vis));
- return c_count + 1;
- }
-
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_CONNECTED_COMPONENTS_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997-2001 University of Notre Dame.
-// Authors: Jeremy G. Siek, Lie-Quan Lee, Andrew Lumsdaine
-//
-// Distributed under the 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 implements the following functions:
-
-
- template <typename VertexListGraph, typename MutableGraph>
- void copy_graph(const VertexListGraph& g_in, MutableGraph& g_out)
-
- template <typename VertexListGraph, typename MutableGraph,
- class P, class T, class R>
- void copy_graph(const VertexListGraph& g_in, MutableGraph& g_out,
- const bgl_named_params<P, T, R>& params)
-
-
- template <typename IncidenceGraph, typename MutableGraph>
- typename graph_traits<MutableGraph>::vertex_descriptor
- copy_component(IncidenceGraph& g_in,
- typename graph_traits<IncidenceGraph>::vertex_descriptor src,
- MutableGraph& g_out)
-
- template <typename IncidenceGraph, typename MutableGraph,
- typename P, typename T, typename R>
- typename graph_traits<MutableGraph>::vertex_descriptor
- copy_component(IncidenceGraph& g_in,
- typename graph_traits<IncidenceGraph>::vertex_descriptor src,
- MutableGraph& g_out,
- const bgl_named_params<P, T, R>& params)
- */
-
-
-#ifndef BOOST_GRAPH_COPY_HPP
-#define BOOST_GRAPH_COPY_HPP
-
-#include <boost/config.hpp>
-#include <vector>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/type_traits/conversion_traits.hpp>
-
-namespace boost {
-
- namespace detail {
-
- // Default edge and vertex property copiers
-
- template <typename Graph1, typename Graph2>
- struct edge_copier {
- edge_copier(const Graph1& g1, Graph2& g2)
- : edge_all_map1(get(edge_all, g1)),
- edge_all_map2(get(edge_all, g2)) { }
-
- template <typename Edge1, typename Edge2>
- void operator()(const Edge1& e1, Edge2& e2) const {
- put(edge_all_map2, e2, get(edge_all_map1, e1));
- }
- typename property_map<Graph1, edge_all_t>::const_type edge_all_map1;
- mutable typename property_map<Graph2, edge_all_t>::type edge_all_map2;
- };
- template <typename Graph1, typename Graph2>
- inline edge_copier<Graph1,Graph2>
- make_edge_copier(const Graph1& g1, Graph2& g2)
- {
- return edge_copier<Graph1,Graph2>(g1, g2);
- }
-
- template <typename Graph1, typename Graph2>
- struct vertex_copier {
- vertex_copier(const Graph1& g1, Graph2& g2)
- : vertex_all_map1(get(vertex_all, g1)),
- vertex_all_map2(get(vertex_all, g2)) { }
-
- template <typename Vertex1, typename Vertex2>
- void operator()(const Vertex1& v1, Vertex2& v2) const {
- put(vertex_all_map2, v2, get(vertex_all_map1, v1));
- }
- typename property_map<Graph1, vertex_all_t>::const_type vertex_all_map1;
- mutable typename property_map<Graph2, vertex_all_t>::type
- vertex_all_map2;
- };
- template <typename Graph1, typename Graph2>
- inline vertex_copier<Graph1,Graph2>
- make_vertex_copier(const Graph1& g1, Graph2& g2)
- {
- return vertex_copier<Graph1,Graph2>(g1, g2);
- }
-
- // Copy all the vertices and edges of graph g_in into graph g_out.
- // The copy_vertex and copy_edge function objects control how vertex
- // and edge properties are copied.
-
- template <int Version>
- struct copy_graph_impl { };
-
- template <> struct copy_graph_impl<0>
- {
- template <typename Graph, typename MutableGraph,
- typename CopyVertex, typename CopyEdge, typename IndexMap,
- typename Orig2CopyVertexIndexMap>
- static void apply(const Graph& g_in, MutableGraph& g_out,
- CopyVertex copy_vertex, CopyEdge copy_edge,
- Orig2CopyVertexIndexMap orig2copy, IndexMap)
- {
- typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
- typename graph_traits<MutableGraph>::vertex_descriptor
- new_v = add_vertex(g_out);
- put(orig2copy, *vi, new_v);
- copy_vertex(*vi, new_v);
- }
- typename graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g_in); ei != ei_end; ++ei) {
- typename graph_traits<MutableGraph>::edge_descriptor new_e;
- bool inserted;
- tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
- get(orig2copy, target(*ei, g_in)),
- g_out);
- copy_edge(*ei, new_e);
- }
- }
- };
-
- // for directed graphs
- template <> struct copy_graph_impl<1>
- {
- template <typename Graph, typename MutableGraph,
- typename CopyVertex, typename CopyEdge, typename IndexMap,
- typename Orig2CopyVertexIndexMap>
- static void apply(const Graph& g_in, MutableGraph& g_out,
- CopyVertex copy_vertex, CopyEdge copy_edge,
- Orig2CopyVertexIndexMap orig2copy, IndexMap)
- {
- typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
- typename graph_traits<MutableGraph>::vertex_descriptor
- new_v = add_vertex(g_out);
- put(orig2copy, *vi, new_v);
- copy_vertex(*vi, new_v);
- }
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
- typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*vi, g_in); ei != ei_end; ++ei) {
- typename graph_traits<MutableGraph>::edge_descriptor new_e;
- bool inserted;
- tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
- get(orig2copy, target(*ei, g_in)),
- g_out);
- copy_edge(*ei, new_e);
- }
- }
- }
- };
-
- // for undirected graphs
- template <> struct copy_graph_impl<2>
- {
- template <typename Graph, typename MutableGraph,
- typename CopyVertex, typename CopyEdge, typename IndexMap,
- typename Orig2CopyVertexIndexMap>
- static void apply(const Graph& g_in, MutableGraph& g_out,
- CopyVertex copy_vertex, CopyEdge copy_edge,
- Orig2CopyVertexIndexMap orig2copy,
- IndexMap index_map)
- {
- typedef color_traits<default_color_type> Color;
- std::vector<default_color_type>
- color(num_vertices(g_in), Color::white());
- typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
- typename graph_traits<MutableGraph>::vertex_descriptor
- new_v = add_vertex(g_out);
- put(orig2copy, *vi, new_v);
- copy_vertex(*vi, new_v);
- }
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
- typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*vi, g_in); ei != ei_end; ++ei) {
- typename graph_traits<MutableGraph>::edge_descriptor new_e;
- bool inserted;
- if (color[get(index_map, target(*ei, g_in))] == Color::white()) {
- tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei,g_in)),
- get(orig2copy, target(*ei,g_in)),
- g_out);
- copy_edge(*ei, new_e);
- }
- }
- color[get(index_map, *vi)] = Color::black();
- }
- }
- };
-
- template <class Graph>
- struct choose_graph_copy {
- typedef typename Graph::traversal_category Trv;
- typedef typename Graph::directed_category Dr;
- enum { algo =
- (is_convertible<Trv, vertex_list_graph_tag>::value
- && is_convertible<Trv, edge_list_graph_tag>::value)
- ? 0 : is_convertible<Dr, directed_tag>::value ? 1 : 2 };
- typedef copy_graph_impl<algo> type;
- };
-
- //-------------------------------------------------------------------------
- struct choose_copier_parameter {
- template <class P, class G1, class G2>
- struct bind_ {
- typedef const P& result_type;
- static result_type apply(const P& p, const G1&, G2&)
- { return p; }
- };
- };
- struct choose_default_edge_copier {
- template <class P, class G1, class G2>
- struct bind_ {
- typedef edge_copier<G1, G2> result_type;
- static result_type apply(const P&, const G1& g1, G2& g2) {
- return result_type(g1, g2);
- }
- };
- };
- template <class Param>
- struct choose_edge_copy {
- typedef choose_copier_parameter type;
- };
- template <>
- struct choose_edge_copy<detail::error_property_not_found> {
- typedef choose_default_edge_copier type;
- };
- template <class Param, class G1, class G2>
- struct choose_edge_copier_helper {
- typedef typename choose_edge_copy<Param>::type Selector;
- typedef typename Selector:: template bind_<Param, G1, G2> Bind;
- typedef Bind type;
- typedef typename Bind::result_type result_type;
- };
- template <typename Param, typename G1, typename G2>
- typename detail::choose_edge_copier_helper<Param,G1,G2>::result_type
- choose_edge_copier(const Param& params, const G1& g_in, G2& g_out)
- {
- typedef typename
- detail::choose_edge_copier_helper<Param,G1,G2>::type Choice;
- return Choice::apply(params, g_in, g_out);
- }
-
-
- struct choose_default_vertex_copier {
- template <class P, class G1, class G2>
- struct bind_ {
- typedef vertex_copier<G1, G2> result_type;
- static result_type apply(const P&, const G1& g1, G2& g2) {
- return result_type(g1, g2);
- }
- };
- };
- template <class Param>
- struct choose_vertex_copy {
- typedef choose_copier_parameter type;
- };
- template <>
- struct choose_vertex_copy<detail::error_property_not_found> {
- typedef choose_default_vertex_copier type;
- };
- template <class Param, class G1, class G2>
- struct choose_vertex_copier_helper {
- typedef typename choose_vertex_copy<Param>::type Selector;
- typedef typename Selector:: template bind_<Param, G1, G2> Bind;
- typedef Bind type;
- typedef typename Bind::result_type result_type;
- };
- template <typename Param, typename G1, typename G2>
- typename detail::choose_vertex_copier_helper<Param,G1,G2>::result_type
- choose_vertex_copier(const Param& params, const G1& g_in, G2& g_out)
- {
- typedef typename
- detail::choose_vertex_copier_helper<Param,G1,G2>::type Choice;
- return Choice::apply(params, g_in, g_out);
- }
-
- } // namespace detail
-
-
- template <typename VertexListGraph, typename MutableGraph>
- void copy_graph(const VertexListGraph& g_in, MutableGraph& g_out)
- {
- if (num_vertices(g_in) == 0)
- return;
- typedef typename graph_traits<MutableGraph>::vertex_descriptor vertex_t;
- std::vector<vertex_t> orig2copy(num_vertices(g_in));
- typedef typename detail::choose_graph_copy<VertexListGraph>::type
- copy_impl;
- copy_impl::apply
- (g_in, g_out,
- detail::make_vertex_copier(g_in, g_out),
- detail::make_edge_copier(g_in, g_out),
- make_iterator_property_map(orig2copy.begin(),
- get(vertex_index, g_in), orig2copy[0]),
- get(vertex_index, g_in)
- );
- }
-
- template <typename VertexListGraph, typename MutableGraph,
- class P, class T, class R>
- void copy_graph(const VertexListGraph& g_in, MutableGraph& g_out,
- const bgl_named_params<P, T, R>& params)
- {
- typename std::vector<T>::size_type n;
- n = is_default_param(get_param(params, orig_to_copy_t()))
- ? num_vertices(g_in) : 1;
- if (n == 0)
- return;
- std::vector<BOOST_DEDUCED_TYPENAME graph_traits<MutableGraph>::vertex_descriptor>
- orig2copy(n);
-
- typedef typename detail::choose_graph_copy<VertexListGraph>::type
- copy_impl;
- copy_impl::apply
- (g_in, g_out,
- detail::choose_vertex_copier(get_param(params, vertex_copy_t()),
- g_in, g_out),
- detail::choose_edge_copier(get_param(params, edge_copy_t()),
- g_in, g_out),
- choose_param(get_param(params, orig_to_copy_t()),
- make_iterator_property_map
- (orig2copy.begin(),
- choose_const_pmap(get_param(params, vertex_index),
- g_in, vertex_index), orig2copy[0])),
- choose_const_pmap(get_param(params, vertex_index), g_in, vertex_index)
- );
- }
-
- namespace detail {
-
- template <class NewGraph, class Copy2OrigIndexMap,
- class CopyVertex, class CopyEdge>
- struct graph_copy_visitor : public bfs_visitor<>
- {
- graph_copy_visitor(NewGraph& graph, Copy2OrigIndexMap c,
- CopyVertex cv, CopyEdge ce)
- : g_out(graph), orig2copy(c), copy_vertex(cv), copy_edge(ce) { }
-
- template <class Vertex, class Graph>
- void examine_vertex(Vertex u, const Graph& g_in) const {
- typename graph_traits<NewGraph>::vertex_descriptor
- new_u = add_vertex(g_out);
- put(orig2copy, u, new_u);
- copy_vertex(u, new_u);
- }
-
- template <class Edge, class Graph>
- void examine_edge(Edge e, const Graph& g_in) const {
- typename graph_traits<NewGraph>::edge_descriptor new_e;
- bool inserted;
- tie(new_e, inserted) = add_edge(get(orig2copy, source(e, g_in)),
- get(orig2copy, target(e, g_in)),
- g_out);
- copy_edge(e, new_e);
- }
- private:
- NewGraph& g_out;
- Copy2OrigIndexMap orig2copy;
- CopyVertex copy_vertex;
- CopyEdge copy_edge;
- };
-
- template <typename Graph, typename MutableGraph,
- typename CopyVertex, typename CopyEdge,
- typename Orig2CopyVertexIndexMap, typename Params>
- typename graph_traits<MutableGraph>::vertex_descriptor
- copy_component_impl
- (const Graph& g_in,
- typename graph_traits<Graph>::vertex_descriptor src,
- MutableGraph& g_out,
- CopyVertex copy_vertex, CopyEdge copy_edge,
- Orig2CopyVertexIndexMap orig2copy,
- const Params& params)
- {
- graph_copy_visitor<MutableGraph, Orig2CopyVertexIndexMap,
- CopyVertex, CopyEdge> vis(g_out, orig2copy, copy_vertex, copy_edge);
- breadth_first_search(g_in, src, params.visitor(vis));
- return get(orig2copy, src);
- }
-
- } // namespace detail
-
-
- // Copy all the vertices and edges of graph g_in that are reachable
- // from the source vertex into graph g_out. Return the vertex
- // in g_out that matches the source vertex of g_in.
- template <typename IncidenceGraph, typename MutableGraph,
- typename P, typename T, typename R>
- typename graph_traits<MutableGraph>::vertex_descriptor
- copy_component(IncidenceGraph& g_in,
- typename graph_traits<IncidenceGraph>::vertex_descriptor src,
- MutableGraph& g_out,
- const bgl_named_params<P, T, R>& params)
- {
- typename std::vector<T>::size_type n;
- n = is_default_param(get_param(params, orig_to_copy_t()))
- ? num_vertices(g_in) : 1;
- std::vector<typename graph_traits<IncidenceGraph>::vertex_descriptor>
- orig2copy(n);
-
- return detail::copy_component_impl
- (g_in, src, g_out,
- detail::choose_vertex_copier(get_param(params, vertex_copy_t()),
- g_in, g_out),
- detail::choose_edge_copier(get_param(params, edge_copy_t()),
- g_in, g_out),
- choose_param(get_param(params, orig_to_copy_t()),
- make_iterator_property_map
- (orig2copy.begin(),
- choose_pmap(get_param(params, vertex_index),
- g_in, vertex_index), orig2copy[0])),
- params
- );
- }
-
- template <typename IncidenceGraph, typename MutableGraph>
- typename graph_traits<MutableGraph>::vertex_descriptor
- copy_component(IncidenceGraph& g_in,
- typename graph_traits<IncidenceGraph>::vertex_descriptor src,
- MutableGraph& g_out)
- {
- std::vector<typename graph_traits<IncidenceGraph>::vertex_descriptor>
- orig2copy(num_vertices(g_in));
-
- return detail::copy_component_impl
- (g_in, src, g_out,
- make_vertex_copier(g_in, g_out),
- make_edge_copier(g_in, g_out),
- make_iterator_property_map(orig2copy.begin(),
- get(vertex_index, g_in), orig2copy[0]),
- bgl_named_params<char,char>('x') // dummy param object
- );
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_COPY_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_CREATE_CONDENSATION_GRAPH_HPP
-#define BOOST_CREATE_CONDENSATION_GRAPH_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-
-namespace boost {
-
- template <typename Graph, typename ComponentLists,
- typename ComponentNumberMap,
- typename CondensationGraph, typename EdgeMultiplicityMap>
- void create_condensation_graph(const Graph& g,
- const ComponentLists& components,
- ComponentNumberMap component_number,
- CondensationGraph& cg,
- EdgeMultiplicityMap edge_mult_map)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- typedef typename graph_traits<CondensationGraph>::vertex_descriptor
- cg_vertex;
- std::vector<cg_vertex> to_cg_vertex(components.size());
- for (size_type s = 0; s < components.size(); ++s)
- to_cg_vertex[s] = add_vertex(cg);
-
- for (size_type si = 0; si < components.size(); ++si) {
- cg_vertex s = to_cg_vertex[si];
- std::vector<cg_vertex> adj;
- for (size_type i = 0; i < components[si].size(); ++i) {
- vertex u = components[s][i];
- typename graph_traits<Graph>::adjacency_iterator v, v_end;
- for (tie(v, v_end) = adjacent_vertices(u, g); v != v_end; ++v) {
- cg_vertex t = to_cg_vertex[component_number[*v]];
- if (s != t) // Avoid loops in the condensation graph
- adj.push_back(t);
- }
- }
- std::sort(adj.begin(), adj.end());
- if (! adj.empty()) {
- size_type i = 0;
- cg_vertex t = adj[i];
- typename graph_traits<CondensationGraph>::edge_descriptor e;
- bool inserted;
- tie(e, inserted) = add_edge(s, t, cg);
- put(edge_mult_map, e, 1);
- ++i;
- while (i < adj.size()) {
- if (adj[i] == t)
- put(edge_mult_map, e, get(edge_mult_map, e) + 1);
- else {
- t = adj[i];
- tie(e, inserted) = add_edge(s, t, cg);
- put(edge_mult_map, e, 1);
- }
- ++i;
- }
- }
- }
- }
-
- template <typename Graph, typename ComponentLists,
- typename ComponentNumberMap, typename CondensationGraph>
- void create_condensation_graph(const Graph& g,
- const ComponentLists& components,
- ComponentNumberMap component_number,
- CondensationGraph& cg)
- {
- create_condensation_graph(g, components, component_number, cg,
- dummy_property_map());
- }
-
-} // namespace boost
-
-#endif // BOOST_CREATE_CONDENSATION_GRAPH_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek,
-// Doug Gregor, D. Kevin McGrath
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-#ifndef BOOST_GRAPH_CUTHILL_MCKEE_HPP
-#define BOOST_GRAPH_CUTHILL_MCKEE_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/detail/sparse_ordering.hpp>
-#include <algorithm>
-
-
-/*
- (Reverse) Cuthill-McKee Algorithm for matrix reordering
-*/
-
-namespace boost {
-
- namespace detail {
-
-
-
- template < typename OutputIterator, typename Buffer, typename DegreeMap >
- class bfs_rcm_visitor:public default_bfs_visitor
- {
- public:
- bfs_rcm_visitor(OutputIterator *iter, Buffer *b, DegreeMap deg):
- permutation(iter), Qptr(b), degree(deg) { }
- template <class Vertex, class Graph>
- void examine_vertex(Vertex u, Graph&) {
- *(*permutation)++ = u;
- index_begin = Qptr->size();
- }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex, Graph&) {
- using std::sort;
-
- typedef typename property_traits<DegreeMap>::value_type DS;
-
- typedef indirect_cmp<DegreeMap, std::less<DS> > Compare;
- Compare comp(degree);
-
- sort(Qptr->begin()+index_begin, Qptr->end(), comp);
- }
- protected:
- OutputIterator *permutation;
- int index_begin;
- Buffer *Qptr;
- DegreeMap degree;
- };
-
- } // namespace detail
-
-
- // Reverse Cuthill-McKee algorithm with a given starting Vertex.
- //
- // If user provides a reverse iterator, this will be a reverse-cuthill-mckee
- // algorithm, otherwise it will be a standard CM algorithm
-
- template <class Graph, class OutputIterator,
- class ColorMap, class DegreeMap>
- OutputIterator
- cuthill_mckee_ordering(const Graph& g,
- std::deque< typename
- graph_traits<Graph>::vertex_descriptor > vertex_queue,
- OutputIterator permutation,
- ColorMap color, DegreeMap degree)
- {
-
- //create queue, visitor...don't forget namespaces!
- typedef typename property_traits<DegreeMap>::value_type DS;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename boost::sparse::sparse_ordering_queue<Vertex> queue;
- typedef typename detail::bfs_rcm_visitor<OutputIterator, queue, DegreeMap> Visitor;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
-
- queue Q;
-
- //create a bfs_rcm_visitor as defined above
- Visitor vis(&permutation, &Q, degree);
-
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
-
- // Copy degree to pseudo_degree
- // initialize the color map
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui){
- put(color, *ui, Color::white());
- }
-
-
- while( !vertex_queue.empty() ) {
- Vertex s = vertex_queue.front();
- vertex_queue.pop_front();
-
- //call BFS with visitor
- breadth_first_visit(g, s, Q, vis, color);
- }
- return permutation;
- }
-
-
- // This is the case where only a single starting vertex is supplied.
- template <class Graph, class OutputIterator,
- class ColorMap, class DegreeMap>
- OutputIterator
- cuthill_mckee_ordering(const Graph& g,
- typename graph_traits<Graph>::vertex_descriptor s,
- OutputIterator permutation,
- ColorMap color, DegreeMap degree)
- {
-
- std::deque< typename graph_traits<Graph>::vertex_descriptor > vertex_queue;
- vertex_queue.push_front( s );
-
- return cuthill_mckee_ordering(g, vertex_queue, permutation, color, degree);
-
- }
-
-
- // This is the version of CM which selects its own starting vertex
- template < class Graph, class OutputIterator,
- class ColorMap, class DegreeMap>
- OutputIterator
- cuthill_mckee_ordering(const Graph& G, OutputIterator permutation,
- ColorMap color, DegreeMap degree)
- {
- if (vertices(G).first == vertices(G).second)
- return permutation;
-
- typedef typename boost::graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename boost::graph_traits<Graph>::vertex_iterator VerIter;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- std::deque<Vertex> vertex_queue;
-
- // Mark everything white
- BGL_FORALL_VERTICES_T(v, G, Graph) put(color, v, Color::white());
-
- // Find one vertex from each connected component
- BGL_FORALL_VERTICES_T(v, G, Graph) {
- if (get(color, v) == Color::white()) {
- depth_first_visit(G, v, dfs_visitor<>(), color);
- vertex_queue.push_back(v);
- }
- }
-
- // Find starting nodes for all vertices
- // TBD: How to do this with a directed graph?
- for (typename std::deque<Vertex>::iterator i = vertex_queue.begin();
- i != vertex_queue.end(); ++i)
- *i = find_starting_node(G, *i, color, degree);
-
- return cuthill_mckee_ordering(G, vertex_queue, permutation,
- color, degree);
- }
-
- template<typename Graph, typename OutputIterator, typename VertexIndexMap>
- OutputIterator
- cuthill_mckee_ordering(const Graph& G, OutputIterator permutation,
- VertexIndexMap index_map)
- {
- if (vertices(G).first == vertices(G).second)
- return permutation;
-
- typedef out_degree_property_map<Graph> DegreeMap;
- std::vector<default_color_type> colors(num_vertices(G));
- return cuthill_mckee_ordering(G, permutation,
- make_iterator_property_map(&colors[0],
- index_map,
- colors[0]),
- make_out_degree_map(G));
- }
-
- template<typename Graph, typename OutputIterator>
- inline OutputIterator
- cuthill_mckee_ordering(const Graph& G, OutputIterator permutation)
- { return cuthill_mckee_ordering(G, permutation, get(vertex_index, G)); }
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_CUTHILL_MCKEE_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DAG_SHORTEST_PATHS_HPP
-#define BOOST_GRAPH_DAG_SHORTEST_PATHS_HPP
-
-#include <boost/graph/topological_sort.hpp>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-
-// single-source shortest paths for a Directed Acyclic Graph (DAG)
-
-namespace boost {
-
- // Initalize distances and call depth first search
- template <class VertexListGraph, class DijkstraVisitor,
- class DistanceMap, class WeightMap, class ColorMap,
- class PredecessorMap,
- class Compare, class Combine,
- class DistInf, class DistZero>
- inline void
- dag_shortest_paths
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- DistanceMap distance, WeightMap weight, ColorMap color,
- PredecessorMap pred,
- DijkstraVisitor vis, Compare compare, Combine combine,
- DistInf inf, DistZero zero)
- {
- typedef typename graph_traits<VertexListGraph>::vertex_descriptor Vertex;
- std::vector<Vertex> rev_topo_order;
- rev_topo_order.reserve(num_vertices(g));
-
- // Call 'depth_first_visit', not 'topological_sort', because we don't
- // want to traverse the entire graph, only vertices reachable from 's',
- // and 'topological_sort' will traverse everything. The logic below
- // is the same as for 'topological_sort', only we call 'depth_first_visit'
- // and 'topological_sort' calls 'depth_first_search'.
- topo_sort_visitor<std::back_insert_iterator<std::vector<Vertex> > >
- topo_visitor(std::back_inserter(rev_topo_order));
- depth_first_visit(g, s, topo_visitor, color);
-
- typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- put(distance, *ui, inf);
- put(pred, *ui, *ui);
- }
-
- put(distance, s, zero);
- vis.discover_vertex(s, g);
- typename std::vector<Vertex>::reverse_iterator i;
- for (i = rev_topo_order.rbegin(); i != rev_topo_order.rend(); ++i) {
- Vertex u = *i;
- vis.examine_vertex(u, g);
- typename graph_traits<VertexListGraph>::out_edge_iterator e, e_end;
- for (tie(e, e_end) = out_edges(u, g); e != e_end; ++e) {
- vis.discover_vertex(target(*e, g), g);
- bool decreased = relax(*e, g, weight, pred, distance,
- combine, compare);
- if (decreased)
- vis.edge_relaxed(*e, g);
- else
- vis.edge_not_relaxed(*e, g);
- }
- vis.finish_vertex(u, g);
- }
- }
-
- namespace detail {
-
- // Defaults are the same as Dijkstra's algorithm
-
- // Handle Distance Compare, Combine, Inf and Zero defaults
- template <class VertexListGraph, class DijkstraVisitor,
- class DistanceMap, class WeightMap, class ColorMap,
- class IndexMap, class Params>
- inline void
- dag_sp_dispatch2
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- DistanceMap distance, WeightMap weight, ColorMap color, IndexMap id,
- DijkstraVisitor vis, const Params& params)
- {
- typedef typename property_traits<DistanceMap>::value_type D;
- dummy_property_map p_map;
- dag_shortest_paths
- (g, s, distance, weight, color,
- choose_param(get_param(params, vertex_predecessor), p_map),
- vis,
- choose_param(get_param(params, distance_compare_t()), std::less<D>()),
- choose_param(get_param(params, distance_combine_t()), closed_plus<D>()),
- choose_param(get_param(params, distance_inf_t()),
- (std::numeric_limits<D>::max)()),
- choose_param(get_param(params, distance_zero_t()),
- D()));
- }
-
- // Handle DistanceMap and ColorMap defaults
- template <class VertexListGraph, class DijkstraVisitor,
- class DistanceMap, class WeightMap, class ColorMap,
- class IndexMap, class Params>
- inline void
- dag_sp_dispatch1
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- DistanceMap distance, WeightMap weight, ColorMap color, IndexMap id,
- DijkstraVisitor vis, const Params& params)
- {
- typedef typename property_traits<WeightMap>::value_type T;
- typename std::vector<T>::size_type n;
- n = is_default_param(distance) ? num_vertices(g) : 1;
- std::vector<T> distance_map(n);
- n = is_default_param(color) ? num_vertices(g) : 1;
- std::vector<default_color_type> color_map(n);
-
- dag_sp_dispatch2
- (g, s,
- choose_param(distance,
- make_iterator_property_map(distance_map.begin(), id,
- distance_map[0])),
- weight,
- choose_param(color,
- make_iterator_property_map(color_map.begin(), id,
- color_map[0])),
- id, vis, params);
- }
-
- } // namespace detail
-
- template <class VertexListGraph, class Param, class Tag, class Rest>
- inline void
- dag_shortest_paths
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<Param,Tag,Rest>& params)
- {
- // assert that the graph is directed...
- null_visitor null_vis;
- detail::dag_sp_dispatch1
- (g, s,
- get_param(params, vertex_distance),
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- get_param(params, vertex_color),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
- choose_param(get_param(params, graph_visitor),
- make_dijkstra_visitor(null_vis)),
- params);
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_DAG_SHORTEST_PATHS_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Copyright 2003 Bruce Barr
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//=======================================================================
-
-// Nonrecursive implementation of depth_first_visit_impl submitted by
-// Bruce Barr, schmoost <at> yahoo.com, May/June 2003.
-#ifndef BOOST_GRAPH_RECURSIVE_DFS_HPP
-#define BOOST_GRAPH_RECURSIVE_DFS_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-#include <boost/ref.hpp>
-#include <boost/implicit_cast.hpp>
-
-#include <vector>
-#include <utility>
-
-namespace boost {
-
- template <class Visitor, class Graph>
- class DFSVisitorConcept {
- public:
- void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
- vis.initialize_vertex(u, g);
- vis.start_vertex(u, g);
- vis.discover_vertex(u, g);
- vis.examine_edge(e, g);
- vis.tree_edge(e, g);
- vis.back_edge(e, g);
- vis.forward_or_cross_edge(e, g);
- vis.finish_vertex(u, g);
- }
- private:
- Visitor vis;
- Graph g;
- typename graph_traits<Graph>::vertex_descriptor u;
- typename graph_traits<Graph>::edge_descriptor e;
- };
-
- namespace detail {
-
- struct nontruth2 {
- template<class T, class T2>
- bool operator()(const T&, const T2&) const { return false; }
- };
-
-
-// Define BOOST_RECURSIVE_DFS to use older, recursive version.
-// It is retained for a while in order to perform performance
-// comparison.
-#ifndef BOOST_RECURSIVE_DFS
-
- // If the vertex u and the iterators ei and ei_end are thought of as the
- // context of the algorithm, each push and pop from the stack could
- // be thought of as a context shift.
- // Each pass through "while (ei != ei_end)" may refer to the out-edges of
- // an entirely different vertex, because the context of the algorithm
- // shifts every time a white adjacent vertex is discovered.
- // The corresponding context shift back from the adjacent vertex occurs
- // after all of its out-edges have been examined.
- //
- // See http://lists.boost.org/MailArchives/boost/msg48752.php for FAQ.
-
- template <class IncidenceGraph, class DFSVisitor, class ColorMap,
- class TerminatorFunc>
- void depth_first_visit_impl
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor& vis,
- ColorMap color, TerminatorFunc func = TerminatorFunc())
- {
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
- typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
- typedef color_traits<ColorValue> Color;
- typedef typename graph_traits<IncidenceGraph>::out_edge_iterator Iter;
- typedef std::pair<Vertex, std::pair<Iter, Iter> > VertexInfo;
-
- Iter ei, ei_end;
- std::vector<VertexInfo> stack;
-
- // Possible optimization for vector
- //stack.reserve(num_vertices(g));
-
- typedef typename unwrap_reference<TerminatorFunc>::type TF;
-
- put(color, u, Color::gray());
- vis.discover_vertex(u, g);
- tie(ei, ei_end) = out_edges(u, g);
- // Variable is needed to workaround a borland bug.
- TF& fn = static_cast<TF&>(func);
- if (fn(u, g)) {
- // If this vertex terminates the search, we push empty range
- stack.push_back(std::make_pair(u, std::make_pair(ei_end, ei_end)));
- } else {
- stack.push_back(std::make_pair(u, std::make_pair(ei, ei_end)));
- }
- while (!stack.empty()) {
- VertexInfo& back = stack.back();
- u = back.first;
- tie(ei, ei_end) = back.second;
- stack.pop_back();
- while (ei != ei_end) {
- Vertex v = target(*ei, g);
- vis.examine_edge(*ei, g);
- ColorValue v_color = get(color, v);
- if (v_color == Color::white()) {
- vis.tree_edge(*ei, g);
- stack.push_back(std::make_pair(u, std::make_pair(++ei, ei_end)));
- u = v;
- put(color, u, Color::gray());
- vis.discover_vertex(u, g);
- tie(ei, ei_end) = out_edges(u, g);
- if (fn(u, g)) {
- ei = ei_end;
- }
- } else if (v_color == Color::gray()) {
- vis.back_edge(*ei, g);
- ++ei;
- } else {
- vis.forward_or_cross_edge(*ei, g);
- ++ei;
- }
- }
- put(color, u, Color::black());
- vis.finish_vertex(u, g);
- }
- }
-
-#else // BOOST_RECURSIVE_DFS is defined
-
- template <class IncidenceGraph, class DFSVisitor, class ColorMap,
- class TerminatorFunc>
- void depth_first_visit_impl
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor& vis, // pass-by-reference here, important!
- ColorMap color, TerminatorFunc func)
- {
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
- typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
- typedef color_traits<ColorValue> Color;
- typename graph_traits<IncidenceGraph>::out_edge_iterator ei, ei_end;
-
- put(color, u, Color::gray()); vis.discover_vertex(u, g);
-
- typedef typename unwrap_reference<TerminatorFunc>::type TF;
- // Variable is needed to workaround a borland bug.
- TF& fn = static_cast<TF&>(func);
- if (!fn(u, g))
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
- Vertex v = target(*ei, g); vis.examine_edge(*ei, g);
- ColorValue v_color = get(color, v);
- if (v_color == Color::white()) { vis.tree_edge(*ei, g);
- depth_first_visit_impl(g, v, vis, color, func);
- } else if (v_color == Color::gray()) vis.back_edge(*ei, g);
- else vis.forward_or_cross_edge(*ei, g);
- }
- put(color, u, Color::black()); vis.finish_vertex(u, g);
- }
-
-#endif
-
- } // namespace detail
-
- template <class VertexListGraph, class DFSVisitor, class ColorMap>
- void
- depth_first_search(const VertexListGraph& g, DFSVisitor vis, ColorMap color,
- typename graph_traits<VertexListGraph>::vertex_descriptor start_vertex)
- {
- typedef typename graph_traits<VertexListGraph>::vertex_descriptor Vertex;
- function_requires<DFSVisitorConcept<DFSVisitor, VertexListGraph> >();
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- put(color, *ui, Color::white()); vis.initialize_vertex(*ui, g);
- }
-
- if (start_vertex != implicit_cast<Vertex>(*vertices(g).first)){ vis.start_vertex(start_vertex, g);
- detail::depth_first_visit_impl(g, start_vertex, vis, color,
- detail::nontruth2());
- }
-
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- ColorValue u_color = get(color, *ui);
- if (u_color == Color::white()) { vis.start_vertex(*ui, g);
- detail::depth_first_visit_impl(g, *ui, vis, color, detail::nontruth2());
- }
- }
- }
-
- template <class VertexListGraph, class DFSVisitor, class ColorMap>
- void
- depth_first_search(const VertexListGraph& g, DFSVisitor vis, ColorMap color)
- {
- depth_first_search(g, vis, color, *vertices(g).first);
- }
-
- namespace detail {
- template <class ColorMap>
- struct dfs_dispatch {
-
- template <class VertexListGraph, class Vertex, class DFSVisitor,
- class P, class T, class R>
- static void
- apply(const VertexListGraph& g, DFSVisitor vis, Vertex start_vertex,
- const bgl_named_params<P, T, R>&,
- ColorMap color)
- {
- depth_first_search(g, vis, color, start_vertex);
- }
- };
-
- template <>
- struct dfs_dispatch<detail::error_property_not_found> {
- template <class VertexListGraph, class Vertex, class DFSVisitor,
- class P, class T, class R>
- static void
- apply(const VertexListGraph& g, DFSVisitor vis, Vertex start_vertex,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- std::vector<default_color_type> color_vec(num_vertices(g));
- default_color_type c = white_color; // avoid warning about un-init
- depth_first_search
- (g, vis, make_iterator_property_map
- (color_vec.begin(),
- choose_const_pmap(get_param(params, vertex_index),
- g, vertex_index), c),
- start_vertex);
- }
- };
- } // namespace detail
-
-
- template <class Visitors = null_visitor>
- class dfs_visitor {
- public:
- dfs_visitor() { }
- dfs_visitor(Visitors vis) : m_vis(vis) { }
-
- template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_initialize_vertex());
- }
- template <class Vertex, class Graph>
- void start_vertex(Vertex u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_start_vertex());
- }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_discover_vertex());
- }
- template <class Edge, class Graph>
- void examine_edge(Edge u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_examine_edge());
- }
- template <class Edge, class Graph>
- void tree_edge(Edge u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_tree_edge());
- }
- template <class Edge, class Graph>
- void back_edge(Edge u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_back_edge());
- }
- template <class Edge, class Graph>
- void forward_or_cross_edge(Edge u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_forward_or_cross_edge());
- }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex u, const Graph& g) {
- invoke_visitors(m_vis, u, g, ::boost::on_finish_vertex());
- }
-
- BOOST_GRAPH_EVENT_STUB(on_initialize_vertex,dfs)
- BOOST_GRAPH_EVENT_STUB(on_start_vertex,dfs)
- BOOST_GRAPH_EVENT_STUB(on_discover_vertex,dfs)
- BOOST_GRAPH_EVENT_STUB(on_examine_edge,dfs)
- BOOST_GRAPH_EVENT_STUB(on_tree_edge,dfs)
- BOOST_GRAPH_EVENT_STUB(on_back_edge,dfs)
- BOOST_GRAPH_EVENT_STUB(on_forward_or_cross_edge,dfs)
- BOOST_GRAPH_EVENT_STUB(on_finish_vertex,dfs)
-
- protected:
- Visitors m_vis;
- };
- template <class Visitors>
- dfs_visitor<Visitors>
- make_dfs_visitor(Visitors vis) {
- return dfs_visitor<Visitors>(vis);
- }
- typedef dfs_visitor<> default_dfs_visitor;
-
-
- // Named Parameter Variant
- template <class VertexListGraph, class P, class T, class R>
- void
- depth_first_search(const VertexListGraph& g,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_value< bgl_named_params<P, T, R>,
- vertex_color_t>::type C;
- detail::dfs_dispatch<C>::apply
- (g,
- choose_param(get_param(params, graph_visitor),
- make_dfs_visitor(null_visitor())),
- choose_param(get_param(params, root_vertex_t()),
- *vertices(g).first),
- params,
- get_param(params, vertex_color)
- );
- }
-
- template <class IncidenceGraph, class DFSVisitor, class ColorMap>
- void depth_first_visit
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor vis, ColorMap color)
- {
- vis.start_vertex(u, g);
- detail::depth_first_visit_impl(g, u, vis, color, detail::nontruth2());
- }
-
- template <class IncidenceGraph, class DFSVisitor, class ColorMap,
- class TerminatorFunc>
- void depth_first_visit
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor vis, ColorMap color, TerminatorFunc func = TerminatorFunc())
- {
- vis.start_vertex(u, g);
- detail::depth_first_visit_impl(g, u, vis, color, func);
- }
-
-
-} // namespace boost
-
-
-#endif
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_ADJ_LIST_EDGE_ITERATOR_HPP
-#define BOOST_GRAPH_DETAIL_ADJ_LIST_EDGE_ITERATOR_HPP
-
-#include <iterator>
-#include <utility>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-# define BOOST_GRAPH_NO_OPTIONAL
-#endif
-
-#ifdef BOOST_GRAPH_NO_OPTIONAL
-# define BOOST_GRAPH_MEMBER .
-#else
-# define BOOST_GRAPH_MEMBER ->
-# include <boost/optional.hpp>
-#endif // ndef BOOST_GRAPH_NO_OPTIONAL
-
-namespace boost {
-
- namespace detail {
-
- template <class VertexIterator, class OutEdgeIterator, class Graph>
- class adj_list_edge_iterator {
- typedef adj_list_edge_iterator self;
- public:
- typedef std::forward_iterator_tag iterator_category;
- typedef typename OutEdgeIterator::value_type value_type;
- typedef typename OutEdgeIterator::reference reference;
- typedef typename OutEdgeIterator::pointer pointer;
- typedef typename OutEdgeIterator::difference_type difference_type;
- typedef difference_type distance_type;
-
- inline adj_list_edge_iterator() {}
-
- inline adj_list_edge_iterator(const self& x)
- : vBegin(x.vBegin), vCurr(x.vCurr), vEnd(x.vEnd),
- edges(x.edges), m_g(x.m_g) { }
-
- template <class G>
- inline adj_list_edge_iterator(VertexIterator b,
- VertexIterator c,
- VertexIterator e,
- const G& g)
- : vBegin(b), vCurr(c), vEnd(e), m_g(&g) {
- if ( vCurr != vEnd ) {
- while ( vCurr != vEnd && out_degree(*vCurr, *m_g) == 0 )
- ++vCurr;
- if ( vCurr != vEnd )
- edges = out_edges(*vCurr, *m_g);
- }
- }
-
- /*Note:
- In the directed graph cases, it is fine.
- For undirected graphs, one edge go through twice.
- */
- inline self& operator++() {
- ++edges BOOST_GRAPH_MEMBER first;
- if (edges BOOST_GRAPH_MEMBER first == edges BOOST_GRAPH_MEMBER second)
- {
- ++vCurr;
- while ( vCurr != vEnd && out_degree(*vCurr, *m_g) == 0 )
- ++vCurr;
- if ( vCurr != vEnd )
- edges = out_edges(*vCurr, *m_g);
- }
- return *this;
- }
- inline self operator++(int) {
- self tmp = *this;
- ++(*this);
- return tmp;
- }
- inline value_type operator*() const
- { return *edges BOOST_GRAPH_MEMBER first; }
- inline bool operator==(const self& x) const {
- return vCurr == x.vCurr
- && (vCurr == vEnd
- || edges BOOST_GRAPH_MEMBER first == x.edges BOOST_GRAPH_MEMBER first);
- }
- inline bool operator!=(const self& x) const {
- return vCurr != x.vCurr
- || (vCurr != vEnd
- && edges BOOST_GRAPH_MEMBER first != x.edges BOOST_GRAPH_MEMBER first);
- }
- protected:
- VertexIterator vBegin;
- VertexIterator vCurr;
- VertexIterator vEnd;
-
-#ifdef BOOST_GRAPH_NO_OPTIONAL
- std::pair<OutEdgeIterator, OutEdgeIterator> edges;
-#else
- boost::optional<std::pair<OutEdgeIterator, OutEdgeIterator> >
- edges;
-#endif // ndef BOOST_GRAPH_NO_OPTIONAL
- const Graph* m_g;
- };
-
- } // namespace detail
-
-}
-
-#undef BOOST_GRAPH_MEMBER
-
-#endif // BOOST_GRAPH_DETAIL_ADJ_LIST_EDGE_ITERATOR_HPP
+++ /dev/null
-// -*- c++ -*-
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_ADJACENCY_LIST_HPP
-#define BOOST_GRAPH_DETAIL_ADJACENCY_LIST_HPP
-
-#include <map> // for vertex_map in copy_impl
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/operators.hpp>
-#include <boost/property_map.hpp>
-#include <boost/pending/integer_range.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <memory>
-#include <algorithm>
-#include <boost/limits.hpp>
-
-#include <boost/iterator/iterator_adaptor.hpp>
-
-#include <boost/pending/ct_if.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/pending/container_traits.hpp>
-#include <boost/graph/detail/adj_list_edge_iterator.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/pending/property.hpp>
-#include <boost/graph/adjacency_iterator.hpp>
-
-// Symbol truncation problems with MSVC, trying to shorten names.
-#define stored_edge se_
-#define stored_edge_property sep_
-#define stored_edge_iter sei_
-
-/*
- Outline for this file:
-
- out_edge_iterator and in_edge_iterator implementation
- edge_iterator for undirected graph
- stored edge types (these object live in the out-edge/in-edge lists)
- directed edges helper class
- directed graph helper class
- undirected graph helper class
- bidirectional graph helper class
- bidirectional graph helper class (without edge properties)
- bidirectional graph helper class (with edge properties)
- adjacency_list helper class
- adj_list_impl class
- vec_adj_list_impl class
- adj_list_gen class
- vertex property map
- edge property map
-
-
- Note: it would be nice to merge some of the undirected and
- bidirectional code... it is aweful similar.
- */
-
-
-
-namespace boost {
-
- namespace detail {
-
- template <typename DirectedS>
- struct directed_category_traits {
- typedef directed_tag directed_category;
- };
-
- template <>
- struct directed_category_traits<directedS> {
- typedef directed_tag directed_category;
- };
- template <>
- struct directed_category_traits<undirectedS> {
- typedef undirected_tag directed_category;
- };
- template <>
- struct directed_category_traits<bidirectionalS> {
- typedef bidirectional_tag directed_category;
- };
-
- template <class Vertex>
- struct target_is {
- target_is(const Vertex& v) : m_target(v) { }
- template <class StoredEdge>
- bool operator()(const StoredEdge& e) const {
- return e.get_target() == m_target;
- }
- Vertex m_target;
- };
-
- // O(E/V)
- template <class EdgeList, class vertex_descriptor>
- void erase_from_incidence_list(EdgeList& el, vertex_descriptor v,
- allow_parallel_edge_tag)
- {
- boost::graph_detail::erase_if(el, detail::target_is<vertex_descriptor>(v));
- }
- // O(log(E/V))
- template <class EdgeList, class vertex_descriptor>
- void erase_from_incidence_list(EdgeList& el, vertex_descriptor v,
- disallow_parallel_edge_tag)
- {
- typedef typename EdgeList::value_type StoredEdge;
- el.erase(StoredEdge(v));
- }
-
- //=========================================================================
- // Out-Edge and In-Edge Iterator Implementation
-
- template <class BaseIter, class VertexDescriptor, class EdgeDescriptor, class Difference>
- struct out_edge_iter
- : iterator_adaptor<
- out_edge_iter<BaseIter, VertexDescriptor, EdgeDescriptor, Difference>
- , BaseIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , Difference
- >
- {
- typedef iterator_adaptor<
- out_edge_iter<BaseIter, VertexDescriptor, EdgeDescriptor, Difference>
- , BaseIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , Difference
- > super_t;
-
- inline out_edge_iter() { }
- inline out_edge_iter(const BaseIter& i, const VertexDescriptor& src)
- : super_t(i), m_src(src) { }
-
- inline EdgeDescriptor
- dereference() const
- {
- return EdgeDescriptor(m_src, (*this->base()).get_target(),
- &(*this->base()).get_property());
- }
- VertexDescriptor m_src;
- };
-
- template <class BaseIter, class VertexDescriptor, class EdgeDescriptor, class Difference>
- struct in_edge_iter
- : iterator_adaptor<
- in_edge_iter<BaseIter, VertexDescriptor, EdgeDescriptor, Difference>
- , BaseIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , Difference
- >
- {
- typedef iterator_adaptor<
- in_edge_iter<BaseIter, VertexDescriptor, EdgeDescriptor, Difference>
- , BaseIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , Difference
- > super_t;
-
- inline in_edge_iter() { }
- inline in_edge_iter(const BaseIter& i, const VertexDescriptor& src)
- : super_t(i), m_src(src) { }
-
- inline EdgeDescriptor
- dereference() const
- {
- return EdgeDescriptor((*this->base()).get_target(), m_src,
- &this->base()->get_property());
- }
- VertexDescriptor m_src;
- };
-
- //=========================================================================
- // Undirected Edge Iterator Implementation
-
- template <class EdgeIter, class EdgeDescriptor, class Difference>
- struct undirected_edge_iter
- : iterator_adaptor<
- undirected_edge_iter<EdgeIter, EdgeDescriptor, Difference>
- , EdgeIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , Difference
- >
- {
- typedef iterator_adaptor<
- undirected_edge_iter<EdgeIter, EdgeDescriptor, Difference>
- , EdgeIter
- , EdgeDescriptor
- , use_default
- , EdgeDescriptor
- , Difference
- > super_t;
-
- undirected_edge_iter() {}
-
- explicit undirected_edge_iter(EdgeIter i)
- : super_t(i) {}
-
- inline EdgeDescriptor
- dereference() const {
- return EdgeDescriptor(
- (*this->base()).m_source
- , (*this->base()).m_target
- , &this->base()->get_property());
- }
- };
-
- //=========================================================================
- // Edge Storage Types (stored in the out-edge/in-edge lists)
-
- template <class Vertex>
- class stored_edge
- : public boost::equality_comparable1< stored_edge<Vertex>,
- boost::less_than_comparable1< stored_edge<Vertex> > >
- {
- public:
- typedef no_property property_type;
- inline stored_edge() { }
- inline stored_edge(Vertex target, const no_property& = no_property())
- : m_target(target) { }
- // Need to write this explicitly so stored_edge_property can
- // invoke Base::operator= (at least, for SGI MIPSPro compiler)
- inline stored_edge& operator=(const stored_edge& x) {
- m_target = x.m_target;
- return *this;
- }
- inline Vertex& get_target() const { return m_target; }
- inline const no_property& get_property() const { return s_prop; }
- inline bool operator==(const stored_edge& x) const
- { return m_target == x.get_target(); }
- inline bool operator<(const stored_edge& x) const
- { return m_target < x.get_target(); }
- //protected: need to add hash<> as a friend
- static no_property s_prop;
- // Sometimes target not used as key in the set, and in that case
- // it is ok to change the target.
- mutable Vertex m_target;
- };
- template <class Vertex>
- no_property stored_edge<Vertex>::s_prop;
-
- template <class Vertex, class Property>
- class stored_edge_property : public stored_edge<Vertex> {
- typedef stored_edge_property self;
- typedef stored_edge<Vertex> Base;
- public:
- typedef Property property_type;
- inline stored_edge_property() { }
- inline stored_edge_property(Vertex target,
- const Property& p = Property())
- : stored_edge<Vertex>(target), m_property(new Property(p)) { }
- stored_edge_property(const self& x)
- : Base(x), m_property(const_cast<self&>(x).m_property) { }
- self& operator=(const self& x) {
- Base::operator=(x);
- m_property = const_cast<self&>(x).m_property;
- return *this;
- }
- inline Property& get_property() { return *m_property; }
- inline const Property& get_property() const { return *m_property; }
- protected:
- // Holding the property by-value causes edge-descriptor
- // invalidation for add_edge() with EdgeList=vecS. Instead we
- // hold a pointer to the property. std::auto_ptr is not
- // a perfect fit for the job, but it is darn close.
- std::auto_ptr<Property> m_property;
- };
-
-
- template <class Vertex, class Iter, class Property>
- class stored_edge_iter
- : public stored_edge<Vertex>
- {
- public:
- typedef Property property_type;
- inline stored_edge_iter() { }
- inline stored_edge_iter(Vertex v)
- : stored_edge<Vertex>(v) { }
- inline stored_edge_iter(Vertex v, Iter i, void* = 0)
- : stored_edge<Vertex>(v), m_iter(i) { }
- inline Property& get_property() { return m_iter->get_property(); }
- inline const Property& get_property() const {
- return m_iter->get_property();
- }
- inline Iter get_iter() const { return m_iter; }
- protected:
- Iter m_iter;
- };
-
- // For when the EdgeList is a std::vector.
- // Want to make the iterator stable, so use an offset
- // instead of an iterator into a std::vector
- template <class Vertex, class EdgeVec, class Property>
- class stored_ra_edge_iter
- : public stored_edge<Vertex>
- {
- typedef typename EdgeVec::iterator Iter;
- public:
- typedef Property property_type;
- inline stored_ra_edge_iter() { }
- inline stored_ra_edge_iter(Vertex v, Iter i = Iter(),
- EdgeVec* edge_vec = 0)
- : stored_edge<Vertex>(v), m_i(i - edge_vec->begin()), m_vec(edge_vec){ }
- inline Property& get_property() { return (*m_vec)[m_i].get_property(); }
- inline const Property& get_property() const {
- return (*m_vec)[m_i].get_property();
- }
- inline Iter get_iter() const { return m_vec->begin() + m_i; }
- protected:
- std::size_t m_i;
- EdgeVec* m_vec;
- };
-
- } // namespace detail
-
- template <class Tag, class Vertex, class Property>
- const typename property_value<Property,Tag>::type&
- get(Tag property_tag,
- const detail::stored_edge_property<Vertex, Property>& e)
- {
- return get_property_value(e.get_property(), property_tag);
- }
-
- template <class Tag, class Vertex, class Iter, class Property>
- const typename property_value<Property,Tag>::type&
- get(Tag property_tag,
- const detail::stored_edge_iter<Vertex, Iter, Property>& e)
- {
- return get_property_value(e.get_property(), property_tag);
- }
-
- template <class Tag, class Vertex, class EdgeVec, class Property>
- const typename property_value<Property,Tag>::type&
- get(Tag property_tag,
- const detail::stored_ra_edge_iter<Vertex, EdgeVec, Property>& e)
- {
- return get_property_value(e.get_property(), property_tag);
- }
-
- //=========================================================================
- // Directed Edges Helper Class
-
- namespace detail {
-
- // O(E/V)
- template <class edge_descriptor, class EdgeList, class StoredProperty>
- inline void
- remove_directed_edge_dispatch(edge_descriptor, EdgeList& el,
- StoredProperty& p)
- {
- for (typename EdgeList::iterator i = el.begin();
- i != el.end(); ++i)
- if (&(*i).get_property() == &p) {
- el.erase(i);
- return;
- }
- }
-
- template <class incidence_iterator, class EdgeList, class Predicate>
- inline void
- remove_directed_edge_if_dispatch(incidence_iterator first,
- incidence_iterator last,
- EdgeList& el, Predicate pred,
- boost::allow_parallel_edge_tag)
- {
- // remove_if
- while (first != last && !pred(*first))
- ++first;
- incidence_iterator i = first;
- if (first != last)
- for (; i != last; ++i)
- if (!pred(*i)) {
- *first.base() = *i.base();
- ++first;
- }
- el.erase(first.base(), el.end());
- }
- template <class incidence_iterator, class EdgeList, class Predicate>
- inline void
- remove_directed_edge_if_dispatch(incidence_iterator first,
- incidence_iterator last,
- EdgeList& el,
- Predicate pred,
- boost::disallow_parallel_edge_tag)
- {
- for (incidence_iterator next = first;
- first != last; first = next) {
- ++next;
- if (pred(*first))
- el.erase( first.base() );
- }
- }
-
- template <class PropT, class Graph, class incidence_iterator,
- class EdgeList, class Predicate>
- inline void
- undirected_remove_out_edge_if_dispatch(Graph& g,
- incidence_iterator first,
- incidence_iterator last,
- EdgeList& el, Predicate pred,
- boost::allow_parallel_edge_tag)
- {
- // remove_if
- while (first != last && !pred(*first))
- ++first;
- incidence_iterator i = first;
- bool self_loop_removed = false;
- if (first != last)
- for (; i != last; ++i) {
- if (self_loop_removed) {
- /* With self loops, the descriptor will show up
- * twice. The first time it will be removed, and now it
- * will be skipped.
- */
- self_loop_removed = false;
- }
- else if (!pred(*i)) {
- *first.base() = *i.base();
- ++first;
- } else {
- if (source(*i, g) == target(*i, g)) self_loop_removed = true;
- else {
- // Remove the edge from the target
- detail::remove_directed_edge_dispatch
- (*i,
- g.out_edge_list(target(*i, g)),
- *(PropT*)(*i).get_property());
- }
-
- // Erase the edge property
- g.m_edges.erase( (*i.base()).get_iter() );
- }
- }
- el.erase(first.base(), el.end());
- }
- template <class PropT, class Graph, class incidence_iterator,
- class EdgeList, class Predicate>
- inline void
- undirected_remove_out_edge_if_dispatch(Graph& g,
- incidence_iterator first,
- incidence_iterator last,
- EdgeList& el,
- Predicate pred,
- boost::disallow_parallel_edge_tag)
- {
- for (incidence_iterator next = first;
- first != last; first = next) {
- ++next;
- if (pred(*first)) {
- if (source(*first, g) != target(*first, g)) {
- // Remove the edge from the target
- detail::remove_directed_edge_dispatch
- (*first,
- g.out_edge_list(target(*first, g)),
- *(PropT*)(*first).get_property());
- }
-
- // Erase the edge property
- g.m_edges.erase( (*first.base()).get_iter() );
-
- // Erase the edge in the source
- el.erase( first.base() );
- }
- }
- }
-
- // O(E/V)
- template <class edge_descriptor, class EdgeList, class StoredProperty>
- inline void
- remove_directed_edge_dispatch(edge_descriptor e, EdgeList& el,
- no_property&)
- {
- for (typename EdgeList::iterator i = el.begin();
- i != el.end(); ++i)
- if ((*i).get_target() == e.m_target) {
- el.erase(i);
- return;
- }
- }
-
- } // namespace detail
-
- template <class Config>
- struct directed_edges_helper {
-
- // Placement of these overloaded remove_edge() functions
- // inside the class avoids a VC++ bug.
-
- // O(E/V)
- inline void
- remove_edge(typename Config::edge_descriptor e)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(*this);
- typename Config::OutEdgeList& el = g.out_edge_list(source(e, g));
- typedef typename Config::OutEdgeList::value_type::property_type PType;
- detail::remove_directed_edge_dispatch(e, el,
- *(PType*)e.get_property());
- }
-
- // O(1)
- inline void
- remove_edge(typename Config::out_edge_iterator iter)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(*this);
- typename Config::edge_descriptor e = *iter;
- typename Config::OutEdgeList& el = g.out_edge_list(source(e, g));
- el.erase(iter.base());
- }
-
- };
-
- // O(1)
- template <class Config>
- inline std::pair<typename Config::edge_iterator,
- typename Config::edge_iterator>
- edges(const directed_edges_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_iterator edge_iterator;
- const graph_type& cg = static_cast<const graph_type&>(g_);
- graph_type& g = const_cast<graph_type&>(cg);
- return std::make_pair( edge_iterator(g.vertex_set().begin(),
- g.vertex_set().begin(),
- g.vertex_set().end(), g),
- edge_iterator(g.vertex_set().begin(),
- g.vertex_set().end(),
- g.vertex_set().end(), g) );
- }
-
- //=========================================================================
- // Directed Graph Helper Class
-
- struct adj_list_dir_traversal_tag :
- public virtual vertex_list_graph_tag,
- public virtual incidence_graph_tag,
- public virtual adjacency_graph_tag,
- public virtual edge_list_graph_tag { };
-
- template <class Config>
- struct directed_graph_helper
- : public directed_edges_helper<Config> {
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef adj_list_dir_traversal_tag traversal_category;
- };
-
- // O(E/V)
- template <class Config>
- inline void
- remove_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- directed_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- detail::erase_from_incidence_list(g.out_edge_list(u), v, Cat());
- }
-
- template <class Config, class Predicate>
- inline void
- remove_out_edge_if(typename Config::vertex_descriptor u, Predicate pred,
- directed_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
- typedef typename Config::edge_parallel_category edge_parallel_category;
- detail::remove_directed_edge_if_dispatch
- (first, last, g.out_edge_list(u), pred, edge_parallel_category());
- }
-
- template <class Config, class Predicate>
- inline void
- remove_edge_if(Predicate pred, directed_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
-
- typename Config::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- remove_out_edge_if(*vi, pred, g);
- }
-
- template <class EdgeOrIter, class Config>
- inline void
- remove_edge(EdgeOrIter e_or_iter, directed_graph_helper<Config>& g_)
- {
- g_.remove_edge(e_or_iter);
- }
-
- // O(V + E) for allow_parallel_edges
- // O(V * log(E/V)) for disallow_parallel_edges
- template <class Config>
- inline void
- clear_vertex(typename Config::vertex_descriptor u,
- directed_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::vertex_iterator vi, viend;
- for (boost::tie(vi, viend) = vertices(g); vi != viend; ++vi)
- detail::erase_from_incidence_list(g.out_edge_list(*vi), u, Cat());
- g.out_edge_list(u).clear();
- // clear() should be a req of Sequence and AssociativeContainer,
- // or maybe just Container
- }
-
- template <class Config>
- inline void
- clear_out_edges(typename Config::vertex_descriptor u,
- directed_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- g.out_edge_list(u).clear();
- // clear() should be a req of Sequence and AssociativeContainer,
- // or maybe just Container
- }
-
- // O(V), could do better...
- template <class Config>
- inline typename Config::edges_size_type
- num_edges(const directed_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- const graph_type& g = static_cast<const graph_type&>(g_);
- typename Config::edges_size_type num_e = 0;
- typename Config::vertex_iterator vi, vi_end;
- for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- num_e += out_degree(*vi, g);
- return num_e;
- }
- // O(1) for allow_parallel_edge_tag
- // O(log(E/V)) for disallow_parallel_edge_tag
- template <class Config>
- inline std::pair<typename directed_graph_helper<Config>::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- const typename Config::edge_property_type& p,
- directed_graph_helper<Config>& g_)
- {
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef typename Config::graph_type graph_type;
- typedef typename Config::StoredEdge StoredEdge;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::OutEdgeList::iterator i;
- bool inserted;
- boost::tie(i, inserted) = boost::graph_detail::push(g.out_edge_list(u),
- StoredEdge(v, p));
- return std::make_pair(edge_descriptor(u, v, &(*i).get_property()),
- inserted);
- }
- // Did not use default argument here because that
- // causes Visual C++ to get confused.
- template <class Config>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- directed_graph_helper<Config>& g_)
- {
- typename Config::edge_property_type p;
- return add_edge(u, v, p, g_);
- }
- //=========================================================================
- // Undirected Graph Helper Class
-
- template <class Config>
- struct undirected_graph_helper;
-
- struct undir_adj_list_traversal_tag :
- public virtual vertex_list_graph_tag,
- public virtual incidence_graph_tag,
- public virtual adjacency_graph_tag,
- public virtual edge_list_graph_tag,
- public virtual bidirectional_graph_tag { };
-
- namespace detail {
-
- // using class with specialization for dispatch is a VC++ workaround.
- template <class StoredProperty>
- struct remove_undirected_edge_dispatch {
-
- // O(E/V)
- template <class edge_descriptor, class Config>
- static void
- apply(edge_descriptor e,
- undirected_graph_helper<Config>& g_,
- StoredProperty& p)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
-
- typename Config::OutEdgeList& out_el = g.out_edge_list(source(e, g));
- typename Config::OutEdgeList::iterator out_i = out_el.begin();
- for (; out_i != out_el.end(); ++out_i)
- if (&(*out_i).get_property() == &p) {
- out_el.erase(out_i);
- break;
- }
- typename Config::OutEdgeList& in_el = g.out_edge_list(target(e, g));
- typename Config::OutEdgeList::iterator in_i = in_el.begin();
- for (; in_i != in_el.end(); ++in_i)
- if (&(*in_i).get_property() == &p) {
- g.m_edges.erase((*in_i).get_iter());
- in_el.erase(in_i);
- return;
- }
- }
- };
-
- template <>
- struct remove_undirected_edge_dispatch<no_property> {
- // O(E/V)
- template <class edge_descriptor, class Config>
- static void
- apply(edge_descriptor e,
- undirected_graph_helper<Config>& g_,
- no_property&)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- no_property* p = (no_property*)e.get_property();
- typename Config::OutEdgeList& out_el = g.out_edge_list(source(e, g));
- typename Config::OutEdgeList::iterator out_i = out_el.begin();
- for (; out_i != out_el.end(); ++out_i)
- if (&(*out_i).get_property() == p) {
- out_el.erase(out_i);
- break;
- }
- typename Config::OutEdgeList& in_el = g.out_edge_list(target(e, g));
- typename Config::OutEdgeList::iterator in_i = in_el.begin();
- for (; in_i != in_el.end(); ++in_i)
- if (&(*in_i).get_property() == p) {
- g.m_edges.erase((*in_i).get_iter());
- in_el.erase(in_i);
- return;
- }
- }
- };
-
- // O(E/V)
- template <class Graph, class EdgeList, class Vertex>
- inline void
- remove_edge_and_property(Graph& g, EdgeList& el, Vertex v,
- boost::allow_parallel_edge_tag cat)
- {
- typedef typename EdgeList::value_type StoredEdge;
- typename EdgeList::iterator i = el.begin(), end = el.end();
- for (; i != end; ++i)
- if ((*i).get_target() == v)
- g.m_edges.erase((*i).get_iter());
- detail::erase_from_incidence_list(el, v, cat);
- }
- // O(log(E/V))
- template <class Graph, class EdgeList, class Vertex>
- inline void
- remove_edge_and_property(Graph& g, EdgeList& el, Vertex v,
- boost::disallow_parallel_edge_tag)
- {
- typedef typename EdgeList::value_type StoredEdge;
- typename EdgeList::iterator i = el.find(StoredEdge(v)), end = el.end();
- if (i != end) {
- g.m_edges.erase((*i).get_iter());
- el.erase(i);
- }
- }
-
- } // namespace detail
-
- template <class Vertex, class EdgeProperty>
- struct list_edge // short name due to VC++ truncation and linker problems
- : public boost::detail::edge_base<boost::undirected_tag, Vertex>
- {
- typedef EdgeProperty property_type;
- typedef boost::detail::edge_base<boost::undirected_tag, Vertex> Base;
- list_edge(Vertex u, Vertex v, const EdgeProperty& p = EdgeProperty())
- : Base(u, v), m_property(p) { }
- EdgeProperty& get_property() { return m_property; }
- const EdgeProperty& get_property() const { return m_property; }
- // the following methods should never be used, but are needed
- // to make SGI MIPSpro C++ happy
- list_edge() { }
- bool operator==(const list_edge&) const { return false; }
- bool operator<(const list_edge&) const { return false; }
- EdgeProperty m_property;
- };
-
- template <class Config>
- struct undirected_graph_helper {
-
- typedef undir_adj_list_traversal_tag traversal_category;
-
- // Placement of these overloaded remove_edge() functions
- // inside the class avoids a VC++ bug.
-
- // O(E/V)
- inline void
- remove_edge(typename Config::edge_descriptor e)
- {
- typedef typename Config::OutEdgeList::value_type::property_type PType;
- detail::remove_undirected_edge_dispatch<PType>::apply
- (e, *this, *(PType*)e.get_property());
- }
- // O(E/V)
- inline void
- remove_edge(typename Config::out_edge_iterator iter)
- {
- this->remove_edge(*iter);
- }
- };
-
- // Had to make these non-members to avoid accidental instantiation
- // on SGI MIPSpro C++
- template <class C>
- inline typename C::InEdgeList&
- in_edge_list(undirected_graph_helper<C>&,
- typename C::vertex_descriptor v)
- {
- typename C::stored_vertex* sv = (typename C::stored_vertex*)v;
- return sv->m_out_edges;
- }
- template <class C>
- inline const typename C::InEdgeList&
- in_edge_list(const undirected_graph_helper<C>&,
- typename C::vertex_descriptor v) {
- typename C::stored_vertex* sv = (typename C::stored_vertex*)v;
- return sv->m_out_edges;
- }
-
- // O(E/V)
- template <class EdgeOrIter, class Config>
- inline void
- remove_edge(EdgeOrIter e, undirected_graph_helper<Config>& g_)
- {
- g_.remove_edge(e);
- }
-
- // O(E/V) or O(log(E/V))
- template <class Config>
- void
- remove_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- typedef typename Config::edge_parallel_category Cat;
- detail::remove_edge_and_property(g, g.out_edge_list(u), v, Cat());
- detail::erase_from_incidence_list(g.out_edge_list(v), u, Cat());
- }
-
- template <class Config, class Predicate>
- void
- remove_out_edge_if(typename Config::vertex_descriptor u, Predicate pred,
- undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::OutEdgeList::value_type::property_type PropT;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
- typedef typename Config::edge_parallel_category Cat;
- detail::undirected_remove_out_edge_if_dispatch<PropT>
- (g, first, last, g.out_edge_list(u), pred, Cat());
- }
- template <class Config, class Predicate>
- void
- remove_in_edge_if(typename Config::vertex_descriptor u, Predicate pred,
- undirected_graph_helper<Config>& g_)
- {
- remove_out_edge_if(u, pred, g_);
- }
-
- // O(E/V * E) or O(log(E/V) * E)
- template <class Predicate, class Config>
- void
- remove_edge_if(Predicate pred, undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::edge_iterator ei, ei_end, next;
- tie(ei, ei_end) = edges(g);
- for (next = ei; ei != ei_end; ei = next) {
- ++next;
- if (pred(*ei))
- remove_edge(*ei, g);
- }
- }
-
- // O(1)
- template <class Config>
- inline std::pair<typename Config::edge_iterator,
- typename Config::edge_iterator>
- edges(const undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_iterator edge_iterator;
- const graph_type& cg = static_cast<const graph_type&>(g_);
- graph_type& g = const_cast<graph_type&>(cg);
- return std::make_pair( edge_iterator(g.m_edges.begin()),
- edge_iterator(g.m_edges.end()) );
- }
- // O(1)
- template <class Config>
- inline typename Config::edges_size_type
- num_edges(const undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- const graph_type& g = static_cast<const graph_type&>(g_);
- return g.m_edges.size();
- }
- // O(E/V * E/V)
- template <class Config>
- inline void
- clear_vertex(typename Config::vertex_descriptor u,
- undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::OutEdgeList& el = g.out_edge_list(u);
- typename Config::OutEdgeList::iterator
- ei = el.begin(), ei_end = el.end();
- for (; ei != ei_end; ++ei) {
- detail::erase_from_incidence_list
- (g.out_edge_list((*ei).get_target()), u, Cat());
- g.m_edges.erase((*ei).get_iter());
- }
- g.out_edge_list(u).clear();
- }
- // O(1) for allow_parallel_edge_tag
- // O(log(E/V)) for disallow_parallel_edge_tag
- template <class Config>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- const typename Config::edge_property_type& p,
- undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::StoredEdge StoredEdge;
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
-
- bool inserted;
- typename Config::EdgeContainer::value_type e(u, v, p);
- g.m_edges.push_back(e);
- typename Config::EdgeContainer::iterator p_iter
- = boost::prior(g.m_edges.end());
- typename Config::OutEdgeList::iterator i;
- boost::tie(i, inserted) = boost::graph_detail::push(g.out_edge_list(u),
- StoredEdge(v, p_iter, &g.m_edges));
- if (inserted) {
- boost::graph_detail::push(g.out_edge_list(v), StoredEdge(u, p_iter, &g.m_edges));
- return std::make_pair(edge_descriptor(u, v, &p_iter->get_property()),
- true);
- } else {
- g.m_edges.erase(p_iter);
- return std::make_pair
- (edge_descriptor(u, v, &i->get_iter()->get_property()), false);
- }
- }
- template <class Config>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- undirected_graph_helper<Config>& g_)
- {
- typename Config::edge_property_type p;
- return add_edge(u, v, p, g_);
- }
-
- // O(1)
- template <class Config>
- inline typename Config::degree_size_type
- degree(typename Config::vertex_descriptor u,
- const undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type Graph;
- const Graph& g = static_cast<const Graph&>(g_);
- return out_degree(u, g);
- }
-
- template <class Config>
- inline std::pair<typename Config::in_edge_iterator,
- typename Config::in_edge_iterator>
- in_edges(typename Config::vertex_descriptor u,
- const undirected_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type Graph;
- const Graph& cg = static_cast<const Graph&>(g_);
- Graph& g = const_cast<Graph&>(cg);
- typedef typename Config::in_edge_iterator in_edge_iterator;
- return
- std::make_pair(in_edge_iterator(g.out_edge_list(u).begin(), u),
- in_edge_iterator(g.out_edge_list(u).end(), u));
- }
-
- template <class Config>
- inline typename Config::degree_size_type
- in_degree(typename Config::vertex_descriptor u,
- const undirected_graph_helper<Config>& g_)
- { return degree(u, g_); }
-
- //=========================================================================
- // Bidirectional Graph Helper Class
-
- struct bidir_adj_list_traversal_tag :
- public virtual vertex_list_graph_tag,
- public virtual incidence_graph_tag,
- public virtual adjacency_graph_tag,
- public virtual edge_list_graph_tag,
- public virtual bidirectional_graph_tag { };
-
- template <class Config>
- struct bidirectional_graph_helper
- : public directed_edges_helper<Config> {
- typedef bidir_adj_list_traversal_tag traversal_category;
- };
-
- // Had to make these non-members to avoid accidental instantiation
- // on SGI MIPSpro C++
- template <class C>
- inline typename C::InEdgeList&
- in_edge_list(bidirectional_graph_helper<C>&,
- typename C::vertex_descriptor v)
- {
- typename C::stored_vertex* sv = (typename C::stored_vertex*)v;
- return sv->m_in_edges;
- }
- template <class C>
- inline const typename C::InEdgeList&
- in_edge_list(const bidirectional_graph_helper<C>&,
- typename C::vertex_descriptor v) {
- typename C::stored_vertex* sv = (typename C::stored_vertex*)v;
- return sv->m_in_edges;
- }
-
- template <class Predicate, class Config>
- inline void
- remove_edge_if(Predicate pred, bidirectional_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::edge_iterator ei, ei_end, next;
- tie(ei, ei_end) = edges(g);
- for (next = ei; ei != ei_end; ei = next) {
- ++next;
- if (pred(*ei))
- remove_edge(*ei, g);
- }
- }
-
- template <class Config>
- inline std::pair<typename Config::in_edge_iterator,
- typename Config::in_edge_iterator>
- in_edges(typename Config::vertex_descriptor u,
- const bidirectional_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- const graph_type& cg = static_cast<const graph_type&>(g_);
- graph_type& g = const_cast<graph_type&>(cg);
- typedef typename Config::in_edge_iterator in_edge_iterator;
- return
- std::make_pair(in_edge_iterator(in_edge_list(g, u).begin(), u),
- in_edge_iterator(in_edge_list(g, u).end(), u));
- }
-
- // O(1)
- template <class Config>
- inline std::pair<typename Config::edge_iterator,
- typename Config::edge_iterator>
- edges(const bidirectional_graph_helper<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_iterator edge_iterator;
- const graph_type& cg = static_cast<const graph_type&>(g_);
- graph_type& g = const_cast<graph_type&>(cg);
- return std::make_pair( edge_iterator(g.m_edges.begin()),
- edge_iterator(g.m_edges.end()) );
- }
-
- //=========================================================================
- // Bidirectional Graph Helper Class (with edge properties)
-
-
- template <class Config>
- struct bidirectional_graph_helper_with_property
- : public bidirectional_graph_helper<Config>
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::out_edge_iterator out_edge_iterator;
-
- std::pair<out_edge_iterator, out_edge_iterator>
- get_parallel_edge_sublist(typename Config::edge_descriptor e,
- const graph_type& g,
- void*)
- { return out_edges(source(e, g), g); }
-
- std::pair<out_edge_iterator, out_edge_iterator>
- get_parallel_edge_sublist(typename Config::edge_descriptor e,
- const graph_type& g,
- setS*)
- { return edge_range(source(e, g), target(e, g), g); }
-
- std::pair<out_edge_iterator, out_edge_iterator>
- get_parallel_edge_sublist(typename Config::edge_descriptor e,
- const graph_type& g,
- multisetS*)
- { return edge_range(source(e, g), target(e, g), g); }
-
-#if !defined BOOST_NO_HASH
- std::pair<out_edge_iterator, out_edge_iterator>
- get_parallel_edge_sublist(typename Config::edge_descriptor e,
- const graph_type& g,
- hash_setS*)
- { return edge_range(source(e, g), target(e, g), g); }
-#endif
-
- // Placement of these overloaded remove_edge() functions
- // inside the class avoids a VC++ bug.
-
- // O(E/V) or O(log(E/V))
- void
- remove_edge(typename Config::edge_descriptor e)
- {
- graph_type& g = static_cast<graph_type&>(*this);
-
- typedef typename Config::edgelist_selector OutEdgeListS;
-
- std::pair<out_edge_iterator, out_edge_iterator> rng =
- get_parallel_edge_sublist(e, g, (OutEdgeListS*)(0));
- rng.first = std::find(rng.first, rng.second, e);
- assert(rng.first != rng.second);
- remove_edge(rng.first);
- }
-
- inline void
- remove_edge(typename Config::out_edge_iterator iter)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(*this);
- typename Config::edge_descriptor e = *iter;
- typename Config::OutEdgeList& oel = g.out_edge_list(source(e, g));
- typename Config::InEdgeList& iel = in_edge_list(g, target(e, g));
- typedef typename Config::OutEdgeList::value_type::property_type PType;
- PType& p = *(PType*)e.get_property();
- detail::remove_directed_edge_dispatch(*iter, iel, p);
- g.m_edges.erase(iter.base()->get_iter());
- oel.erase(iter.base());
- }
- };
-
- // O(E/V) for allow_parallel_edge_tag
- // O(log(E/V)) for disallow_parallel_edge_tag
- template <class Config>
- inline void
- remove_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- typedef typename Config::edge_parallel_category Cat;
- detail::remove_edge_and_property(g, g.out_edge_list(u), v, Cat());
- detail::erase_from_incidence_list(in_edge_list(g, v), u, Cat());
- }
-
- // O(E/V) or O(log(E/V))
- template <class EdgeOrIter, class Config>
- inline void
- remove_edge(EdgeOrIter e,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- g_.remove_edge(e);
- }
-
- template <class Config, class Predicate>
- inline void
- remove_out_edge_if(typename Config::vertex_descriptor u, Predicate pred,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::OutEdgeList::value_type::property_type PropT;
- graph_type& g = static_cast<graph_type&>(g_);
-
- typedef typename Config::EdgeIter EdgeIter;
- typedef std::vector<EdgeIter> Garbage;
- Garbage garbage;
-
- // First remove the edges from the targets' in-edge lists and
- // from the graph's edge set list.
- typename Config::out_edge_iterator out_i, out_end;
- for (tie(out_i, out_end) = out_edges(u, g); out_i != out_end; ++out_i)
- if (pred(*out_i)) {
- detail::remove_directed_edge_dispatch
- (*out_i, in_edge_list(g, target(*out_i, g)),
- *(PropT*)(*out_i).get_property());
- // Put in garbage to delete later. Will need the properties
- // for the remove_if of the out-edges.
- garbage.push_back((*out_i.base()).get_iter());
- }
-
- // Now remove the edges from this out-edge list.
- typename Config::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
- typedef typename Config::edge_parallel_category Cat;
- detail::remove_directed_edge_if_dispatch
- (first, last, g.out_edge_list(u), pred, Cat());
-
- // Now delete the edge properties from the g.m_edges list
- for (typename Garbage::iterator i = garbage.begin();
- i != garbage.end(); ++i)
- g.m_edges.erase(*i);
- }
- template <class Config, class Predicate>
- inline void
- remove_in_edge_if(typename Config::vertex_descriptor v, Predicate pred,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::OutEdgeList::value_type::property_type PropT;
- graph_type& g = static_cast<graph_type&>(g_);
-
- typedef typename Config::EdgeIter EdgeIter;
- typedef std::vector<EdgeIter> Garbage;
- Garbage garbage;
-
- // First remove the edges from the sources' out-edge lists and
- // from the graph's edge set list.
- typename Config::in_edge_iterator in_i, in_end;
- for (tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i)
- if (pred(*in_i)) {
- typename Config::vertex_descriptor u = source(*in_i, g);
- detail::remove_directed_edge_dispatch
- (*in_i, g.out_edge_list(u), *(PropT*)(*in_i).get_property());
- // Put in garbage to delete later. Will need the properties
- // for the remove_if of the out-edges.
- garbage.push_back((*in_i.base()).get_iter());
- }
- // Now remove the edges from this in-edge list.
- typename Config::in_edge_iterator first, last;
- tie(first, last) = in_edges(v, g);
- typedef typename Config::edge_parallel_category Cat;
- detail::remove_directed_edge_if_dispatch
- (first, last, in_edge_list(g, v), pred, Cat());
-
- // Now delete the edge properties from the g.m_edges list
- for (typename Garbage::iterator i = garbage.begin();
- i != garbage.end(); ++i)
- g.m_edges.erase(*i);
- }
-
- // O(1)
- template <class Config>
- inline typename Config::edges_size_type
- num_edges(const bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- const graph_type& g = static_cast<const graph_type&>(g_);
- return g.m_edges.size();
- }
- // O(E/V * E/V) for allow_parallel_edge_tag
- // O(E/V * log(E/V)) for disallow_parallel_edge_tag
- template <class Config>
- inline void
- clear_vertex(typename Config::vertex_descriptor u,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::OutEdgeList& el = g.out_edge_list(u);
- typename Config::OutEdgeList::iterator
- ei = el.begin(), ei_end = el.end();
- for (; ei != ei_end; ++ei) {
- detail::erase_from_incidence_list
- (in_edge_list(g, (*ei).get_target()), u, Cat());
- g.m_edges.erase((*ei).get_iter());
- }
- typename Config::InEdgeList& in_el = in_edge_list(g, u);
- typename Config::InEdgeList::iterator
- in_ei = in_el.begin(), in_ei_end = in_el.end();
- for (; in_ei != in_ei_end; ++in_ei) {
- detail::erase_from_incidence_list
- (g.out_edge_list((*in_ei).get_target()), u, Cat());
- g.m_edges.erase((*in_ei).get_iter());
- }
- g.out_edge_list(u).clear();
- in_edge_list(g, u).clear();
- }
-
- template <class Config>
- inline void
- clear_out_edges(typename Config::vertex_descriptor u,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::OutEdgeList& el = g.out_edge_list(u);
- typename Config::OutEdgeList::iterator
- ei = el.begin(), ei_end = el.end();
- for (; ei != ei_end; ++ei) {
- detail::erase_from_incidence_list
- (in_edge_list(g, (*ei).get_target()), u, Cat());
- g.m_edges.erase((*ei).get_iter());
- }
- g.out_edge_list(u).clear();
- }
-
- template <class Config>
- inline void
- clear_in_edges(typename Config::vertex_descriptor u,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- typedef typename Config::edge_parallel_category Cat;
- graph_type& g = static_cast<graph_type&>(g_);
- typename Config::InEdgeList& in_el = in_edge_list(g, u);
- typename Config::InEdgeList::iterator
- in_ei = in_el.begin(), in_ei_end = in_el.end();
- for (; in_ei != in_ei_end; ++in_ei) {
- detail::erase_from_incidence_list
- (g.out_edge_list((*in_ei).get_target()), u, Cat());
- g.m_edges.erase((*in_ei).get_iter());
- }
- in_edge_list(g, u).clear();
- }
-
- // O(1) for allow_parallel_edge_tag
- // O(log(E/V)) for disallow_parallel_edge_tag
- template <class Config>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- const typename Config::edge_property_type& p,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- graph_type& g = static_cast<graph_type&>(g_);
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef typename Config::StoredEdge StoredEdge;
- bool inserted;
- typename Config::EdgeContainer::value_type e(u, v, p);
- g.m_edges.push_back(e);
- typename Config::EdgeContainer::iterator p_iter
- = boost::prior(g.m_edges.end());
- typename Config::OutEdgeList::iterator i;
- boost::tie(i, inserted) = boost::graph_detail::push(g.out_edge_list(u),
- StoredEdge(v, p_iter, &g.m_edges));
- if (inserted) {
- boost::graph_detail::push(in_edge_list(g, v), StoredEdge(u, p_iter, &g.m_edges));
- return std::make_pair(edge_descriptor(u, v, &p_iter->m_property),
- true);
- } else {
- g.m_edges.erase(p_iter);
- return std::make_pair(edge_descriptor(u, v,
- &i->get_iter()->get_property()),
- false);
- }
- }
-
- template <class Config>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- bidirectional_graph_helper_with_property<Config>& g_)
- {
- typename Config::edge_property_type p;
- return add_edge(u, v, p, g_);
- }
- // O(1)
- template <class Config>
- inline typename Config::degree_size_type
- degree(typename Config::vertex_descriptor u,
- const bidirectional_graph_helper_with_property<Config>& g_)
- {
- typedef typename Config::graph_type graph_type;
- const graph_type& g = static_cast<const graph_type&>(g_);
- return in_degree(u, g) + out_degree(u, g);
- }
-
- //=========================================================================
- // Adjacency List Helper Class
-
- template <class Config, class Base>
- struct adj_list_helper : public Base
- {
- typedef typename Config::graph_type AdjList;
- typedef typename Config::vertex_descriptor vertex_descriptor;
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef typename Config::out_edge_iterator out_edge_iterator;
- typedef typename Config::in_edge_iterator in_edge_iterator;
- typedef typename Config::adjacency_iterator adjacency_iterator;
- typedef typename Config::inv_adjacency_iterator inv_adjacency_iterator;
- typedef typename Config::vertex_iterator vertex_iterator;
- typedef typename Config::edge_iterator edge_iterator;
- typedef typename Config::directed_category directed_category;
- typedef typename Config::edge_parallel_category edge_parallel_category;
- typedef typename Config::vertices_size_type vertices_size_type;
- typedef typename Config::edges_size_type edges_size_type;
- typedef typename Config::degree_size_type degree_size_type;
- typedef typename Config::StoredEdge StoredEdge;
- typedef typename Config::edge_property_type edge_property_type;
-
- // protected:
-
- // The edge_dispatch() functions should be static, but
- // Borland gets confused about constness.
-
- // O(E/V)
- inline std::pair<edge_descriptor,bool>
- edge_dispatch(const AdjList& g,
- vertex_descriptor u, vertex_descriptor v,
- boost::allow_parallel_edge_tag) const
- {
- bool found;
- const typename Config::OutEdgeList& el = g.out_edge_list(u);
- typename Config::OutEdgeList::const_iterator
- i = std::find_if(el.begin(), el.end(),
- detail::target_is<vertex_descriptor>(v));
- found = (i != g.out_edge_list(u).end());
- if (found)
- return std::make_pair(edge_descriptor(u, v, &(*i).get_property()),
- true);
- else
- return std::make_pair(edge_descriptor(u, v, 0), false);
- }
- // O(log(E/V))
- inline std::pair<edge_descriptor,bool>
- edge_dispatch(const AdjList& g,
- vertex_descriptor u, vertex_descriptor v,
- boost::disallow_parallel_edge_tag) const
- {
- bool found;
- /* According to the standard, this should be iterator, not const_iterator,
- but the VC++ std::set::find() const returns const_iterator.
- And since iterator should be convertible to const_iterator, the
- following should work everywhere. -Jeremy */
- typename Config::OutEdgeList::const_iterator
- i = g.out_edge_list(u).find(StoredEdge(v)),
- end = g.out_edge_list(u).end();
- found = (i != end);
- if (found)
- return std::make_pair(edge_descriptor(u, v, &(*i).get_property()),
- true);
- else
- return std::make_pair(edge_descriptor(u, v, 0), false);
- }
- };
-
- template <class Config, class Base>
- inline std::pair<typename Config::adjacency_iterator,
- typename Config::adjacency_iterator>
- adjacent_vertices(typename Config::vertex_descriptor u,
- const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type AdjList;
- const AdjList& cg = static_cast<const AdjList&>(g_);
- AdjList& g = const_cast<AdjList&>(cg);
- typedef typename Config::adjacency_iterator adjacency_iterator;
- typename Config::out_edge_iterator first, last;
- boost::tie(first, last) = out_edges(u, g);
- return std::make_pair(adjacency_iterator(first, &g),
- adjacency_iterator(last, &g));
- }
- template <class Config, class Base>
- inline std::pair<typename Config::inv_adjacency_iterator,
- typename Config::inv_adjacency_iterator>
- inv_adjacent_vertices(typename Config::vertex_descriptor u,
- const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type AdjList;
- const AdjList& cg = static_cast<const AdjList&>(g_);
- AdjList& g = const_cast<AdjList&>(cg);
- typedef typename Config::inv_adjacency_iterator inv_adjacency_iterator;
- typename Config::in_edge_iterator first, last;
- boost::tie(first, last) = in_edges(u, g);
- return std::make_pair(inv_adjacency_iterator(first, &g),
- inv_adjacency_iterator(last, &g));
- }
- template <class Config, class Base>
- inline std::pair<typename Config::out_edge_iterator,
- typename Config::out_edge_iterator>
- out_edges(typename Config::vertex_descriptor u,
- const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type AdjList;
- typedef typename Config::out_edge_iterator out_edge_iterator;
- const AdjList& cg = static_cast<const AdjList&>(g_);
- AdjList& g = const_cast<AdjList&>(cg);
- return
- std::make_pair(out_edge_iterator(g.out_edge_list(u).begin(), u),
- out_edge_iterator(g.out_edge_list(u).end(), u));
- }
- template <class Config, class Base>
- inline std::pair<typename Config::vertex_iterator,
- typename Config::vertex_iterator>
- vertices(const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type AdjList;
- const AdjList& cg = static_cast<const AdjList&>(g_);
- AdjList& g = const_cast<AdjList&>(cg);
- return std::make_pair( g.vertex_set().begin(), g.vertex_set().end() );
- }
- template <class Config, class Base>
- inline typename Config::vertices_size_type
- num_vertices(const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type AdjList;
- const AdjList& g = static_cast<const AdjList&>(g_);
- return g.vertex_set().size();
- }
- template <class Config, class Base>
- inline typename Config::degree_size_type
- out_degree(typename Config::vertex_descriptor u,
- const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type AdjList;
- const AdjList& g = static_cast<const AdjList&>(g_);
- return g.out_edge_list(u).size();
- }
- template <class Config, class Base>
- inline std::pair<typename Config::edge_descriptor, bool>
- edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type Graph;
- typedef typename Config::edge_parallel_category Cat;
- const Graph& g = static_cast<const Graph&>(g_);
- return g_.edge_dispatch(g, u, v, Cat());
- }
- template <class Config, class Base>
- inline std::pair<typename Config::out_edge_iterator,
- typename Config::out_edge_iterator>
- edge_range(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- const adj_list_helper<Config, Base>& g_)
- {
- typedef typename Config::graph_type Graph;
- typedef typename Config::StoredEdge StoredEdge;
- const Graph& cg = static_cast<const Graph&>(g_);
- Graph& g = const_cast<Graph&>(cg);
- typedef typename Config::out_edge_iterator out_edge_iterator;
- typename Config::OutEdgeList& el = g.out_edge_list(u);
- typename Config::OutEdgeList::iterator first, last;
- typename Config::EdgeContainer fake_edge_container;
- tie(first, last) =
- std::equal_range(el.begin(), el.end(),
- StoredEdge(v, fake_edge_container.end(),
- &fake_edge_container));
- return std::make_pair(out_edge_iterator(first, u),
- out_edge_iterator(last, u));
- }
-
- template <class Config>
- inline typename Config::degree_size_type
- in_degree(typename Config::vertex_descriptor u,
- const directed_edges_helper<Config>& g_)
- {
- typedef typename Config::graph_type Graph;
- const Graph& cg = static_cast<const Graph&>(g_);
- Graph& g = const_cast<Graph&>(cg);
- return in_edge_list(g, u).size();
- }
-
- namespace detail {
- template <class Config, class Base, class Property>
- inline
- typename boost::property_map<typename Config::graph_type,
- Property>::type
- get_dispatch(adj_list_helper<Config,Base>&, Property,
- boost::edge_property_tag) {
- typedef typename Config::graph_type Graph;
- typedef typename boost::property_map<Graph, Property>::type PA;
- return PA();
- }
- template <class Config, class Base, class Property>
- inline
- typename boost::property_map<typename Config::graph_type,
- Property>::const_type
- get_dispatch(const adj_list_helper<Config,Base>&, Property,
- boost::edge_property_tag) {
- typedef typename Config::graph_type Graph;
- typedef typename boost::property_map<Graph, Property>::const_type PA;
- return PA();
- }
-
- template <class Config, class Base, class Property>
- inline
- typename boost::property_map<typename Config::graph_type,
- Property>::type
- get_dispatch(adj_list_helper<Config,Base>& g, Property,
- boost::vertex_property_tag) {
- typedef typename Config::graph_type Graph;
- typedef typename boost::property_map<Graph, Property>::type PA;
- return PA(&static_cast<Graph&>(g));
- }
- template <class Config, class Base, class Property>
- inline
- typename boost::property_map<typename Config::graph_type,
- Property>::const_type
- get_dispatch(const adj_list_helper<Config, Base>& g, Property,
- boost::vertex_property_tag) {
- typedef typename Config::graph_type Graph;
- typedef typename boost::property_map<Graph, Property>::const_type PA;
- const Graph& cg = static_cast<const Graph&>(g);
- return PA(&cg);
- }
-
- } // namespace detail
-
- // Implementation of the PropertyGraph interface
- template <class Config, class Base, class Property>
- inline
- typename boost::property_map<typename Config::graph_type, Property>::type
- get(Property p, adj_list_helper<Config, Base>& g) {
- typedef typename property_kind<Property>::type Kind;
- return detail::get_dispatch(g, p, Kind());
- }
- template <class Config, class Base, class Property>
- inline
- typename boost::property_map<typename Config::graph_type,
- Property>::const_type
- get(Property p, const adj_list_helper<Config, Base>& g) {
- typedef typename property_kind<Property>::type Kind;
- return detail::get_dispatch(g, p, Kind());
- }
-
- template <class Config, class Base, class Property, class Key>
- inline
- typename boost::property_traits<
- typename boost::property_map<typename Config::graph_type,
- Property>::const_type
- >::value_type
- get(Property p, const adj_list_helper<Config, Base>& g, const Key& key) {
- return get(get(p, g), key);
- }
-
- template <class Config, class Base, class Property, class Key,class Value>
- inline void
- put(Property p, adj_list_helper<Config, Base>& g,
- const Key& key, const Value& value)
- {
- typedef typename Config::graph_type Graph;
- typedef typename boost::property_map<Graph, Property>::type Map;
- Map pmap = get(p, static_cast<Graph&>(g));
- put(pmap, key, value);
- }
-
-
- //=========================================================================
- // Generalize Adjacency List Implementation
-
- struct adj_list_tag { };
-
- template <class Derived, class Config, class Base>
- class adj_list_impl
- : public adj_list_helper<Config, Base>
- {
- typedef typename Config::OutEdgeList OutEdgeList;
- typedef typename Config::InEdgeList InEdgeList;
- typedef typename Config::StoredVertexList StoredVertexList;
- public:
- typedef typename Config::stored_vertex stored_vertex;
- typedef typename Config::EdgeContainer EdgeContainer;
- typedef typename Config::vertex_descriptor vertex_descriptor;
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef typename Config::vertex_iterator vertex_iterator;
- typedef typename Config::edge_iterator edge_iterator;
- typedef typename Config::edge_parallel_category edge_parallel_category;
- typedef typename Config::vertices_size_type vertices_size_type;
- typedef typename Config::edges_size_type edges_size_type;
- typedef typename Config::degree_size_type degree_size_type;
- typedef typename Config::edge_property_type edge_property_type;
- typedef adj_list_tag graph_tag;
-
- static vertex_descriptor null_vertex()
- {
- return 0;
- }
-
- inline adj_list_impl() { }
-
- inline adj_list_impl(const adj_list_impl& x) {
- copy_impl(x);
- }
- inline adj_list_impl& operator=(const adj_list_impl& x) {
- this->clear();
- copy_impl(x);
- return *this;
- }
- inline void clear() {
- for (typename StoredVertexList::iterator i = m_vertices.begin();
- i != m_vertices.end(); ++i)
- delete (stored_vertex*)*i;
- m_vertices.clear();
- m_edges.clear();
- }
- inline adj_list_impl(vertices_size_type num_vertices) {
- for (vertices_size_type i = 0; i < num_vertices; ++i)
- add_vertex(static_cast<Derived&>(*this));
- }
- template <class EdgeIterator>
- inline adj_list_impl(vertices_size_type num_vertices,
- EdgeIterator first, EdgeIterator last)
- {
- vertex_descriptor* v = new vertex_descriptor[num_vertices];
- for (vertices_size_type i = 0; i < num_vertices; ++i)
- v[i] = add_vertex(static_cast<Derived&>(*this));
-
- while (first != last) {
- add_edge(v[(*first).first], v[(*first).second], *this);
- ++first;
- }
- delete [] v;
- }
- template <class EdgeIterator, class EdgePropertyIterator>
- inline adj_list_impl(vertices_size_type num_vertices,
- EdgeIterator first, EdgeIterator last,
- EdgePropertyIterator ep_iter)
- {
- vertex_descriptor* v = new vertex_descriptor[num_vertices];
- for (vertices_size_type i = 0; i < num_vertices; ++i)
- v[i] = add_vertex(static_cast<Derived&>(*this));
-
- while (first != last) {
- add_edge(v[(*first).first], v[(*first).second], *ep_iter, *this);
- ++first;
- ++ep_iter;
- }
- delete [] v;
- }
- ~adj_list_impl() {
- for (typename StoredVertexList::iterator i = m_vertices.begin();
- i != m_vertices.end(); ++i)
- delete (stored_vertex*)*i;
- }
- // protected:
- inline OutEdgeList& out_edge_list(vertex_descriptor v) {
- stored_vertex* sv = (stored_vertex*)v;
- return sv->m_out_edges;
- }
- inline const OutEdgeList& out_edge_list(vertex_descriptor v) const {
- stored_vertex* sv = (stored_vertex*)v;
- return sv->m_out_edges;
- }
- inline StoredVertexList& vertex_set() { return m_vertices; }
- inline const StoredVertexList& vertex_set() const { return m_vertices; }
-
- inline void copy_impl(const adj_list_impl& x_)
- {
- const Derived& x = static_cast<const Derived&>(x_);
-
- // Would be better to have a constant time way to get from
- // vertices in x to the corresponding vertices in *this.
- std::map<stored_vertex*,stored_vertex*> vertex_map;
-
- // Copy the stored vertex objects by adding each vertex
- // and copying its property object.
- vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(x); vi != vi_end; ++vi) {
- stored_vertex* v = (stored_vertex*)add_vertex(*this);
- v->m_property = ((stored_vertex*)*vi)->m_property;
- vertex_map[(stored_vertex*)*vi] = v;
- }
- // Copy the edges by adding each edge and copying its
- // property object.
- edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(x); ei != ei_end; ++ei) {
- edge_descriptor e;
- bool inserted;
- vertex_descriptor s = source(*ei,x), t = target(*ei,x);
- tie(e, inserted) = add_edge(vertex_map[(stored_vertex*)s],
- vertex_map[(stored_vertex*)t], *this);
- *((edge_property_type*)e.m_eproperty)
- = *((edge_property_type*)(*ei).m_eproperty);
- }
- }
-
-
- typename Config::EdgeContainer m_edges;
- StoredVertexList m_vertices;
- };
-
- // O(1)
- template <class Derived, class Config, class Base>
- inline typename Config::vertex_descriptor
- add_vertex(adj_list_impl<Derived, Config, Base>& g_)
- {
- Derived& g = static_cast<Derived&>(g_);
- typedef typename Config::stored_vertex stored_vertex;
- stored_vertex* v = new stored_vertex;
- typename Config::StoredVertexList::iterator pos;
- bool inserted;
- boost::tie(pos,inserted) = boost::graph_detail::push(g.m_vertices, v);
- v->m_position = pos;
- return v;
- }
- // O(1)
- template <class Derived, class Config, class Base>
- inline typename Config::vertex_descriptor
- add_vertex(const typename Config::vertex_property_type& p,
- adj_list_impl<Derived, Config, Base>& g_)
- {
- Derived& g = static_cast<Derived&>(g_);
- typedef typename Config::stored_vertex stored_vertex;
- stored_vertex* v = new stored_vertex(p);
- typename Config::StoredVertexList::iterator pos;
- bool inserted;
- boost::tie(pos,inserted) = boost::graph_detail::push(g.m_vertices, v);
- v->m_position = pos;
- return v;
- }
- // O(1)
- template <class Derived, class Config, class Base>
- inline void remove_vertex(typename Config::vertex_descriptor u,
- adj_list_impl<Derived, Config, Base>& g_)
- {
- typedef typename Config::stored_vertex stored_vertex;
- Derived& g = static_cast<Derived&>(g_);
- stored_vertex* su = (stored_vertex*)u;
- g.m_vertices.erase(su->m_position);
- delete su;
- }
- // O(V)
- template <class Derived, class Config, class Base>
- inline typename Config::vertex_descriptor
- vertex(typename Config::vertices_size_type n,
- const adj_list_impl<Derived, Config, Base>& g_)
- {
- const Derived& g = static_cast<const Derived&>(g_);
- typename Config::vertex_iterator i = vertices(g).first;
- while (n--) ++i; // std::advance(i, n); (not VC++ portable)
- return *i;
- }
-
- //=========================================================================
- // Vector-Backbone Adjacency List Implementation
-
- namespace detail {
-
- template <class Graph, class vertex_descriptor>
- inline void
- remove_vertex_dispatch(Graph& g, vertex_descriptor u,
- boost::directed_tag)
- {
- typedef typename Graph::edge_parallel_category edge_parallel_category;
- g.m_vertices.erase(g.m_vertices.begin() + u);
- vertex_descriptor V = num_vertices(g);
- if (u != V) {
- for (vertex_descriptor v = 0; v < V; ++v)
- reindex_edge_list(g.out_edge_list(v), u, edge_parallel_category());
- }
- }
-
- template <class Graph, class vertex_descriptor>
- inline void
- remove_vertex_dispatch(Graph& g, vertex_descriptor u,
- boost::undirected_tag)
- {
- typedef typename Graph::edge_parallel_category edge_parallel_category;
- g.m_vertices.erase(g.m_vertices.begin() + u);
- vertex_descriptor V = num_vertices(g);
- for (vertex_descriptor v = 0; v < V; ++v)
- reindex_edge_list(g.out_edge_list(v), u,
- edge_parallel_category());
- typedef typename Graph::EdgeContainer Container;
- typedef typename Container::iterator Iter;
- Iter ei = g.m_edges.begin(), ei_end = g.m_edges.end();
- for (; ei != ei_end; ++ei) {
- if (ei->m_source > u)
- --ei->m_source;
- if (ei->m_target > u)
- --ei->m_target;
- }
- }
- template <class Graph, class vertex_descriptor>
- inline void
- remove_vertex_dispatch(Graph& g, vertex_descriptor u,
- boost::bidirectional_tag)
- {
- typedef typename Graph::edge_parallel_category edge_parallel_category;
- g.m_vertices.erase(g.m_vertices.begin() + u);
- vertex_descriptor V = num_vertices(g);
- vertex_descriptor v;
- if (u != V) {
- for (v = 0; v < V; ++v)
- reindex_edge_list(g.out_edge_list(v), u,
- edge_parallel_category());
- for (v = 0; v < V; ++v)
- reindex_edge_list(in_edge_list(g, v), u,
- edge_parallel_category());
-
- typedef typename Graph::EdgeContainer Container;
- typedef typename Container::iterator Iter;
- Iter ei = g.m_edges.begin(), ei_end = g.m_edges.end();
- for (; ei != ei_end; ++ei) {
- if (ei->m_source > u)
- --ei->m_source;
- if (ei->m_target > u)
- --ei->m_target;
- }
- }
- }
-
- template <class EdgeList, class vertex_descriptor>
- inline void
- reindex_edge_list(EdgeList& el, vertex_descriptor u,
- boost::allow_parallel_edge_tag)
- {
- typename EdgeList::iterator ei = el.begin(), e_end = el.end();
- for (; ei != e_end; ++ei)
- if ((*ei).get_target() > u)
- --(*ei).get_target();
- }
- template <class EdgeList, class vertex_descriptor>
- inline void
- reindex_edge_list(EdgeList& el, vertex_descriptor u,
- boost::disallow_parallel_edge_tag)
- {
- typename EdgeList::iterator ei = el.begin(), e_end = el.end();
- while (ei != e_end) {
- typename EdgeList::value_type ce = *ei;
- ++ei;
- if (ce.get_target() > u) {
- el.erase(ce);
- --ce.get_target();
- el.insert(ce);
- }
- }
- }
- } // namespace detail
-
- struct vec_adj_list_tag { };
-
- template <class Graph, class Config, class Base>
- class vec_adj_list_impl
- : public adj_list_helper<Config, Base>
- {
- typedef typename Config::OutEdgeList OutEdgeList;
- typedef typename Config::InEdgeList InEdgeList;
- typedef typename Config::StoredVertexList StoredVertexList;
- public:
- typedef typename Config::vertex_descriptor vertex_descriptor;
- typedef typename Config::edge_descriptor edge_descriptor;
- typedef typename Config::out_edge_iterator out_edge_iterator;
- typedef typename Config::edge_iterator edge_iterator;
- typedef typename Config::directed_category directed_category;
- typedef typename Config::vertices_size_type vertices_size_type;
- typedef typename Config::edges_size_type edges_size_type;
- typedef typename Config::degree_size_type degree_size_type;
- typedef typename Config::StoredEdge StoredEdge;
- typedef typename Config::stored_vertex stored_vertex;
- typedef typename Config::EdgeContainer EdgeContainer;
- typedef typename Config::edge_property_type edge_property_type;
- typedef vec_adj_list_tag graph_tag;
-
- static vertex_descriptor null_vertex()
- {
- return (std::numeric_limits<vertex_descriptor>::max)();
- }
-
- inline vec_adj_list_impl() { }
-
- inline vec_adj_list_impl(const vec_adj_list_impl& x) {
- copy_impl(x);
- }
- inline vec_adj_list_impl& operator=(const vec_adj_list_impl& x) {
- this->clear();
- copy_impl(x);
- return *this;
- }
- inline void clear() {
- m_vertices.clear();
- m_edges.clear();
- }
-
- inline vec_adj_list_impl(vertices_size_type _num_vertices)
- : m_vertices(_num_vertices) { }
-
- template <class EdgeIterator>
- inline vec_adj_list_impl(vertices_size_type num_vertices,
- EdgeIterator first, EdgeIterator last)
- : m_vertices(num_vertices)
- {
- while (first != last) {
- add_edge((*first).first, (*first).second,
- static_cast<Graph&>(*this));
- ++first;
- }
- }
- template <class EdgeIterator, class EdgePropertyIterator>
- inline vec_adj_list_impl(vertices_size_type num_vertices,
- EdgeIterator first, EdgeIterator last,
- EdgePropertyIterator ep_iter)
- : m_vertices(num_vertices)
- {
- while (first != last) {
- add_edge((*first).first, (*first).second, *ep_iter,
- static_cast<Graph&>(*this));
- ++first;
- ++ep_iter;
- }
- }
-
- // protected:
- inline boost::integer_range<vertex_descriptor> vertex_set() const {
- return boost::integer_range<vertex_descriptor>(0, m_vertices.size());
- }
- inline OutEdgeList& out_edge_list(vertex_descriptor v) {
- return m_vertices[v].m_out_edges;
- }
- inline const OutEdgeList& out_edge_list(vertex_descriptor v) const {
- return m_vertices[v].m_out_edges;
- }
- inline void copy_impl(const vec_adj_list_impl& x_)
- {
- const Graph& x = static_cast<const Graph&>(x_);
- // Copy the stored vertex objects by adding each vertex
- // and copying its property object.
- for (vertices_size_type i = 0; i < num_vertices(x); ++i) {
- vertex_descriptor v = add_vertex(*this);
- m_vertices[v].m_property = x.m_vertices[i].m_property;
- }
- // Copy the edges by adding each edge and copying its
- // property object.
- edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(x); ei != ei_end; ++ei) {
- edge_descriptor e;
- bool inserted;
- tie(e, inserted) = add_edge(source(*ei,x), target(*ei,x) , *this);
- *((edge_property_type*)e.m_eproperty)
- = *((edge_property_type*)(*ei).m_eproperty);
- }
- }
- typename Config::EdgeContainer m_edges;
- StoredVertexList m_vertices;
- };
- // Had to make these non-members to avoid accidental instantiation
- // on SGI MIPSpro C++
- template <class G, class C, class B>
- inline typename C::InEdgeList&
- in_edge_list(vec_adj_list_impl<G,C,B>& g,
- typename C::vertex_descriptor v) {
- return g.m_vertices[v].m_in_edges;
- }
- template <class G, class C, class B>
- inline const typename C::InEdgeList&
- in_edge_list(const vec_adj_list_impl<G,C,B>& g,
- typename C::vertex_descriptor v) {
- return g.m_vertices[v].m_in_edges;
- }
-
- // O(1)
- template <class Graph, class Config, class Base>
- inline typename Config::vertex_descriptor
- add_vertex(vec_adj_list_impl<Graph, Config, Base>& g_) {
- Graph& g = static_cast<Graph&>(g_);
- g.m_vertices.resize(g.m_vertices.size() + 1);
- return g.m_vertices.size() - 1;
- }
-
- template <class Graph, class Config, class Base>
- inline typename Config::vertex_descriptor
- add_vertex(const typename Config::vertex_property_type& p,
- vec_adj_list_impl<Graph, Config, Base>& g_) {
- Graph& g = static_cast<Graph&>(g_);
- typedef typename Config::stored_vertex stored_vertex;
- g.m_vertices.push_back(stored_vertex(p));
- return g.m_vertices.size() - 1;
- }
-
- // Here we override the directed_graph_helper add_edge() function
- // so that the number of vertices is automatically changed if
- // either u or v is greater than the number of vertices.
- template <class Graph, class Config, class Base>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- const typename Config::edge_property_type& p,
- vec_adj_list_impl<Graph, Config, Base>& g_)
- {
- BOOST_USING_STD_MAX();
- typename Config::vertex_descriptor x = max BOOST_PREVENT_MACRO_SUBSTITUTION(u, v);
- if (x >= num_vertices(g_))
- g_.m_vertices.resize(x + 1);
- adj_list_helper<Config, Base>& g = g_;
- return add_edge(u, v, p, g);
- }
- template <class Graph, class Config, class Base>
- inline std::pair<typename Config::edge_descriptor, bool>
- add_edge(typename Config::vertex_descriptor u,
- typename Config::vertex_descriptor v,
- vec_adj_list_impl<Graph, Config, Base>& g_)
- {
- typename Config::edge_property_type p;
- return add_edge(u, v, p, g_);
- }
-
-
- // O(V + E)
- template <class Graph, class Config, class Base>
- inline void remove_vertex(typename Config::vertex_descriptor v,
- vec_adj_list_impl<Graph, Config, Base>& g_)
- {
- typedef typename Config::directed_category Cat;
- Graph& g = static_cast<Graph&>(g_);
- detail::remove_vertex_dispatch(g, v, Cat());
- }
- // O(1)
- template <class Graph, class Config, class Base>
- inline typename Config::vertex_descriptor
- vertex(typename Config::vertices_size_type n,
- const vec_adj_list_impl<Graph, Config, Base>&)
- {
- return n;
- }
-
-
- namespace detail {
-
- //=========================================================================
- // Adjacency List Generator
-
- template <class Graph, class VertexListS, class OutEdgeListS,
- class DirectedS, class VertexProperty, class EdgeProperty,
- class GraphProperty, class EdgeListS>
- struct adj_list_gen
- {
- typedef typename detail::is_random_access<VertexListS>::type
- is_rand_access;
- typedef typename has_property<EdgeProperty>::type has_edge_property;
- typedef typename DirectedS::is_directed_t DirectedT;
- typedef typename DirectedS::is_bidir_t BidirectionalT;
-
- struct config
- {
- typedef OutEdgeListS edgelist_selector;
-
- typedef Graph graph_type;
- typedef EdgeProperty edge_property_type;
- typedef VertexProperty vertex_property_type;
- typedef GraphProperty graph_property_type;
- typedef std::size_t vertices_size_type;
-
- typedef adjacency_list_traits<OutEdgeListS, VertexListS, DirectedS>
- Traits;
-
- typedef typename Traits::directed_category directed_category;
- typedef typename Traits::edge_parallel_category edge_parallel_category;
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
-
- typedef void* vertex_ptr;
-
- // need to reorganize this to avoid instantiating stuff
- // that doesn't get used -JGS
-
- // VertexList and vertex_iterator
- typedef typename container_gen<VertexListS,
- vertex_ptr>::type SeqVertexList;
- typedef boost::integer_range<std::size_t> RandVertexList;
- typedef typename boost::ct_if_t<is_rand_access,
- RandVertexList, SeqVertexList>::type VertexList;
-
- typedef typename VertexList::iterator vertex_iterator;
-
- // EdgeContainer and StoredEdge
-
- typedef typename container_gen<EdgeListS,
- list_edge<vertex_descriptor, EdgeProperty> >::type EdgeContainer;
-
- typedef typename ct_and<DirectedT,
- typename ct_not<BidirectionalT>::type >::type on_edge_storage;
-
- typedef typename boost::ct_if_t<on_edge_storage,
- std::size_t, typename EdgeContainer::size_type
- >::type edges_size_type;
-
- typedef typename EdgeContainer::iterator EdgeIter;
-
- typedef typename detail::is_random_access<EdgeListS>::type is_edge_ra;
-
- typedef typename boost::ct_if_t<on_edge_storage,
- stored_edge_property<vertex_descriptor, EdgeProperty>,
- typename boost::ct_if_t<is_edge_ra,
- stored_ra_edge_iter<vertex_descriptor, EdgeContainer, EdgeProperty>,
- stored_edge_iter<vertex_descriptor, EdgeIter, EdgeProperty>
- >::type
- >::type StoredEdge;
-
- // Adjacency Types
-
- typedef typename container_gen<OutEdgeListS, StoredEdge>::type
- OutEdgeList;
- typedef typename OutEdgeList::size_type degree_size_type;
- typedef typename OutEdgeList::iterator OutEdgeIter;
-
- typedef boost::detail::iterator_traits<OutEdgeIter> OutEdgeIterTraits;
- typedef typename OutEdgeIterTraits::iterator_category OutEdgeIterCat;
- typedef typename OutEdgeIterTraits::difference_type OutEdgeIterDiff;
-
- typedef out_edge_iter<
- OutEdgeIter, vertex_descriptor, edge_descriptor, OutEdgeIterDiff
- > out_edge_iterator;
-
- typedef typename adjacency_iterator_generator<graph_type,
- vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
-
- typedef OutEdgeList InEdgeList;
- typedef OutEdgeIter InEdgeIter;
- typedef OutEdgeIterCat InEdgeIterCat;
- typedef OutEdgeIterDiff InEdgeIterDiff;
-
- typedef in_edge_iter<
- InEdgeIter, vertex_descriptor, edge_descriptor, InEdgeIterDiff
- > in_edge_iterator;
-
- typedef typename inv_adjacency_iterator_generator<graph_type,
- vertex_descriptor, in_edge_iterator>::type inv_adjacency_iterator;
-
- // Edge Iterator
-
- typedef boost::detail::iterator_traits<EdgeIter> EdgeIterTraits;
- typedef typename EdgeIterTraits::iterator_category EdgeIterCat;
- typedef typename EdgeIterTraits::difference_type EdgeIterDiff;
-
- typedef undirected_edge_iter<
- EdgeIter
- , edge_descriptor
- , EdgeIterDiff
- > UndirectedEdgeIter; // also used for bidirectional
-
- typedef adj_list_edge_iterator<vertex_iterator, out_edge_iterator,
- graph_type> DirectedEdgeIter;
-
- typedef typename boost::ct_if_t<on_edge_storage,
- DirectedEdgeIter, UndirectedEdgeIter>::type edge_iterator;
-
- // stored_vertex and StoredVertexList
- typedef typename container_gen<VertexListS, vertex_ptr>::type
- SeqStoredVertexList;
- struct seq_stored_vertex {
- seq_stored_vertex() { }
- seq_stored_vertex(const VertexProperty& p) : m_property(p) { }
- OutEdgeList m_out_edges;
- VertexProperty m_property;
- typename SeqStoredVertexList::iterator m_position;
- };
- struct bidir_seq_stored_vertex {
- bidir_seq_stored_vertex() { }
- bidir_seq_stored_vertex(const VertexProperty& p) : m_property(p) { }
- OutEdgeList m_out_edges;
- InEdgeList m_in_edges;
- VertexProperty m_property;
- typename SeqStoredVertexList::iterator m_position;
- };
- struct rand_stored_vertex {
- rand_stored_vertex() { }
- rand_stored_vertex(const VertexProperty& p) : m_property(p) { }
- OutEdgeList m_out_edges;
- VertexProperty m_property;
- };
- struct bidir_rand_stored_vertex {
- bidir_rand_stored_vertex() { }
- bidir_rand_stored_vertex(const VertexProperty& p) : m_property(p) { }
- OutEdgeList m_out_edges;
- InEdgeList m_in_edges;
- VertexProperty m_property;
- };
- typedef typename boost::ct_if_t<is_rand_access,
- typename boost::ct_if_t<BidirectionalT,
- bidir_rand_stored_vertex, rand_stored_vertex>::type,
- typename boost::ct_if_t<BidirectionalT,
- bidir_seq_stored_vertex, seq_stored_vertex>::type
- >::type StoredVertex;
- struct stored_vertex : public StoredVertex {
- stored_vertex() { }
- stored_vertex(const VertexProperty& p) : StoredVertex(p) { }
- };
-
- typedef typename container_gen<VertexListS, stored_vertex>::type
- RandStoredVertexList;
- typedef typename boost::ct_if_t< is_rand_access,
- RandStoredVertexList, SeqStoredVertexList>::type StoredVertexList;
- }; // end of config
-
-
- typedef typename boost::ct_if_t<BidirectionalT,
- bidirectional_graph_helper_with_property<config>,
- typename boost::ct_if_t<DirectedT,
- directed_graph_helper<config>,
- undirected_graph_helper<config>
- >::type
- >::type DirectedHelper;
-
- typedef typename boost::ct_if_t<is_rand_access,
- vec_adj_list_impl<Graph, config, DirectedHelper>,
- adj_list_impl<Graph, config, DirectedHelper>
- >::type type;
-
- };
-
- } // namespace detail
-
- //=========================================================================
- // Vertex Property Maps
-
- template <class Graph, class ValueType, class Reference, class Tag>
- struct adj_list_vertex_property_map
- : public boost::put_get_helper<
- Reference,
- adj_list_vertex_property_map<Graph, ValueType, Reference, Tag>
- >
- {
- typedef typename Graph::stored_vertex StoredVertex;
- typedef ValueType value_type;
- typedef Reference reference;
- typedef typename Graph::vertex_descriptor key_type;
- typedef boost::lvalue_property_map_tag category;
- inline adj_list_vertex_property_map() { }
- inline adj_list_vertex_property_map(const Graph*) { }
- inline Reference operator[](key_type v) const {
- StoredVertex* sv = (StoredVertex*)v;
- return get_property_value(sv->m_property, Tag());
- }
- inline Reference operator()(key_type v) const {
- return this->operator[](v);
- }
- };
-
- template <class Graph, class Property, class PropRef>
- struct adj_list_vertex_all_properties_map
- : public boost::put_get_helper<PropRef,
- adj_list_vertex_all_properties_map<Graph, Property, PropRef>
- >
- {
- typedef typename Graph::stored_vertex StoredVertex;
- typedef Property value_type;
- typedef PropRef reference;
- typedef typename Graph::vertex_descriptor key_type;
- typedef boost::lvalue_property_map_tag category;
- inline adj_list_vertex_all_properties_map() { }
- inline adj_list_vertex_all_properties_map(const Graph*) { }
- inline PropRef operator[](key_type v) const {
- StoredVertex* sv = (StoredVertex*)v;
- return sv->m_property;
- }
- inline PropRef operator()(key_type v) const {
- return this->operator[](v);
- }
- };
-
- template <class Graph, class GraphPtr, class ValueType, class Reference,
- class Tag>
- struct vec_adj_list_vertex_property_map
- : public boost::put_get_helper<
- Reference,
- vec_adj_list_vertex_property_map<Graph,GraphPtr,ValueType,Reference,
- Tag>
- >
- {
- typedef ValueType value_type;
- typedef Reference reference;
- typedef typename boost::graph_traits<Graph>::vertex_descriptor key_type;
- typedef boost::lvalue_property_map_tag category;
- vec_adj_list_vertex_property_map() { }
- vec_adj_list_vertex_property_map(GraphPtr g) : m_g(g) { }
- inline Reference operator[](key_type v) const {
- return get_property_value(m_g->m_vertices[v].m_property, Tag());
- }
- inline Reference operator()(key_type v) const {
- return this->operator[](v);
- }
- GraphPtr m_g;
- };
-
- template <class Graph, class GraphPtr, class Property, class PropertyRef>
- struct vec_adj_list_vertex_all_properties_map
- : public boost::put_get_helper<PropertyRef,
- vec_adj_list_vertex_all_properties_map<Graph,GraphPtr,Property,
- PropertyRef>
- >
- {
- typedef Property value_type;
- typedef PropertyRef reference;
- typedef typename boost::graph_traits<Graph>::vertex_descriptor key_type;
- typedef boost::lvalue_property_map_tag category;
- vec_adj_list_vertex_all_properties_map() { }
- vec_adj_list_vertex_all_properties_map(GraphPtr g) : m_g(g) { }
- inline PropertyRef operator[](key_type v) const {
- return m_g->m_vertices[v].m_property;
- }
- inline PropertyRef operator()(key_type v) const {
- return this->operator[](v);
- }
- GraphPtr m_g;
- };
-
- struct adj_list_any_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename property_value<Property, Tag>::type value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
- typedef adj_list_vertex_property_map
- <Graph, value_type, reference, Tag> type;
- typedef adj_list_vertex_property_map
- <Graph, value_type, const_reference, Tag> const_type;
- };
- };
- struct adj_list_all_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename Graph::vertex_descriptor Vertex;
- typedef adj_list_vertex_all_properties_map<Graph,Property,
- Property&> type;
- typedef adj_list_vertex_all_properties_map<Graph,Property,
- const Property&> const_type;
- };
- };
-
- template <class Property, class Vertex>
- struct vec_adj_list_vertex_id_map
- : public boost::put_get_helper<
- Vertex, vec_adj_list_vertex_id_map<Property, Vertex>
- >
- {
- typedef Vertex value_type;
- typedef Vertex key_type;
- typedef Vertex reference;
- typedef boost::readable_property_map_tag category;
- inline vec_adj_list_vertex_id_map() { }
- template <class Graph>
- inline vec_adj_list_vertex_id_map(const Graph&) { }
- inline value_type operator[](key_type v) const { return v; }
- inline value_type operator()(key_type v) const { return v; }
- };
-
- struct vec_adj_list_any_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename property_value<Property, Tag>::type value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
- typedef vec_adj_list_vertex_property_map
- <Graph, Graph*, value_type, reference, Tag> type;
- typedef vec_adj_list_vertex_property_map
- <Graph, const Graph*, value_type, const_reference, Tag> const_type;
- };
- };
- struct vec_adj_list_id_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename Graph::vertex_descriptor Vertex;
- typedef vec_adj_list_vertex_id_map<Property, Vertex> type;
- typedef vec_adj_list_vertex_id_map<Property, Vertex> const_type;
- };
- };
- struct vec_adj_list_all_vertex_pa {
- template <class Tag, class Graph, class Property>
- struct bind_ {
- typedef typename Graph::vertex_descriptor Vertex;
- typedef vec_adj_list_vertex_all_properties_map
- <Graph, Graph*, Property, Property&> type;
- typedef vec_adj_list_vertex_all_properties_map
- <Graph, const Graph*, Property, const Property&> const_type;
- };
- };
- namespace detail {
- template <class Tag>
- struct adj_list_choose_vertex_pa_helper {
- typedef adj_list_any_vertex_pa type;
- };
- template <>
- struct adj_list_choose_vertex_pa_helper<vertex_all_t> {
- typedef adj_list_all_vertex_pa type;
- };
- template <class Tag, class Graph, class Property>
- struct adj_list_choose_vertex_pa {
- typedef typename adj_list_choose_vertex_pa_helper<Tag>::type Helper;
- typedef typename Helper::template bind_<Tag,Graph,Property> Bind;
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
-
-
- template <class Tag>
- struct vec_adj_list_choose_vertex_pa_helper {
- typedef vec_adj_list_any_vertex_pa type;
- };
- template <>
- struct vec_adj_list_choose_vertex_pa_helper<vertex_index_t> {
- typedef vec_adj_list_id_vertex_pa type;
- };
- template <>
- struct vec_adj_list_choose_vertex_pa_helper<vertex_all_t> {
- typedef vec_adj_list_all_vertex_pa type;
- };
- template <class Tag, class Graph, class Property>
- struct vec_adj_list_choose_vertex_pa {
- typedef typename vec_adj_list_choose_vertex_pa_helper<Tag>::type Helper;
- typedef typename Helper::template bind_<Tag,Graph,Property> Bind;
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
- } // namespace detail
-
- //=========================================================================
- // Edge Property Map
-
- template <class Directed, class Value, class Ref, class Vertex,
- class Property, class Tag>
- struct adj_list_edge_property_map
- : public put_get_helper<
- Ref,
- adj_list_edge_property_map<Directed, Value, Ref, Vertex, Property,
- Tag>
- >
- {
- typedef Value value_type;
- typedef Ref reference;
- typedef detail::edge_desc_impl<Directed, Vertex> key_type;
- typedef boost::lvalue_property_map_tag category;
- inline Ref operator[](key_type e) const {
- Property& p = *(Property*)e.get_property();
- return get_property_value(p, Tag());
- }
- inline Ref operator()(key_type e) const {
- return this->operator[](e);
- }
- };
-
- template <class Directed, class Property, class PropRef, class PropPtr,
- class Vertex>
- struct adj_list_edge_all_properties_map
- : public put_get_helper<PropRef,
- adj_list_edge_all_properties_map<Directed, Property, PropRef,
- PropPtr, Vertex>
- >
- {
- typedef Property value_type;
- typedef PropRef reference;
- typedef detail::edge_desc_impl<Directed, Vertex> key_type;
- typedef boost::lvalue_property_map_tag category;
- inline PropRef operator[](key_type e) const {
- return *(PropPtr)e.get_property();
- }
- inline PropRef operator()(key_type e) const {
- return this->operator[](e);
- }
- };
-
- // Edge Property Maps
-
- namespace detail {
- struct adj_list_any_edge_pmap {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef typename property_value<Property,Tag>::type value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
- typedef adj_list_edge_property_map
- <typename Graph::directed_category, value_type, reference,
- typename Graph::vertex_descriptor,Property,Tag> type;
- typedef adj_list_edge_property_map
- <typename Graph::directed_category, value_type, const_reference,
- typename Graph::vertex_descriptor,const Property, Tag> const_type;
- };
- };
- struct adj_list_all_edge_pmap {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef adj_list_edge_all_properties_map
- <typename Graph::directed_category, Property, Property&, Property*,
- typename Graph::vertex_descriptor> type;
- typedef adj_list_edge_all_properties_map
- <typename Graph::directed_category, Property, const Property&,
- const Property*, typename Graph::vertex_descriptor> const_type;
- };
- };
-
- template <class Tag>
- struct adj_list_choose_edge_pmap_helper {
- typedef adj_list_any_edge_pmap type;
- };
- template <>
- struct adj_list_choose_edge_pmap_helper<edge_all_t> {
- typedef adj_list_all_edge_pmap type;
- };
- template <class Tag, class Graph, class Property>
- struct adj_list_choose_edge_pmap {
- typedef typename adj_list_choose_edge_pmap_helper<Tag>::type Helper;
- typedef typename Helper::template bind_<Graph,Property,Tag> Bind;
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
- struct adj_list_edge_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef adj_list_choose_edge_pmap<Tag,Graph,Property> Choice;
- typedef typename Choice::type type;
- typedef typename Choice::const_type const_type;
- };
- };
- } // namespace detail
-
- template <>
- struct edge_property_selector<adj_list_tag> {
- typedef detail::adj_list_edge_property_selector type;
- };
- template <>
- struct edge_property_selector<vec_adj_list_tag> {
- typedef detail::adj_list_edge_property_selector type;
- };
-
- // Vertex Property Maps
-
- struct adj_list_vertex_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef detail::adj_list_choose_vertex_pa<Tag,Graph,Property> Choice;
- typedef typename Choice::type type;
- typedef typename Choice::const_type const_type;
- };
- };
- template <>
- struct vertex_property_selector<adj_list_tag> {
- typedef adj_list_vertex_property_selector type;
- };
-
- struct vec_adj_list_vertex_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef detail::vec_adj_list_choose_vertex_pa<Tag,Graph,Property> Choice;
- typedef typename Choice::type type;
- typedef typename Choice::const_type const_type;
- };
- };
- template <>
- struct vertex_property_selector<vec_adj_list_tag> {
- typedef vec_adj_list_vertex_property_selector type;
- };
-
-} // namespace boost
-
-#if !defined(BOOST_NO_HASH) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace BOOST_STD_EXTENSION_NAMESPACE {
-
- #if BOOST_WORKAROUND( _STLPORT_VERSION, >= 0x500 )
- // STLport 5 already defines a hash<void*> specialization.
- #else
- template <>
- struct hash< void* > // Need this when vertex_descriptor=void*
- {
- std::size_t
- operator()(void* v) const { return (std::size_t)v; }
- };
- #endif
-
- template <typename V>
- struct hash< boost::detail::stored_edge<V> >
- {
- std::size_t
- operator()(const boost::detail::stored_edge<V>& e) const
- {
- return hash<V>()(e.m_target);
- }
- };
-
- template <typename V, typename P>
- struct hash< boost::detail::stored_edge_property <V,P> >
- {
- std::size_t
- operator()(const boost::detail::stored_edge_property<V,P>& e) const
- {
- return hash<V>()(e.m_target);
- }
- };
-
- template <typename V, typename I, typename P>
- struct hash< boost::detail::stored_edge_iter<V,I, P> >
- {
- std::size_t
- operator()(const boost::detail::stored_edge_iter<V,I,P>& e) const
- {
- return hash<V>()(e.m_target);
- }
- };
-
-}
-#endif
-
-
-#undef stored_edge
-#undef stored_edge_property
-#undef stored_edge_iter
-
-#endif // BOOST_GRAPH_DETAIL_DETAIL_ADJACENCY_LIST_CCT
-
-/*
- Implementation Notes:
-
- Many of the public interface functions in this file would have been
- more conveniently implemented as inline friend functions.
- However there are a few compiler bugs that make that approach
- non-portable.
-
- 1. g++ inline friend in namespace bug
- 2. g++ using clause doesn't work with inline friends
- 3. VC++ doesn't have Koenig lookup
-
- For these reasons, the functions were all written as non-inline free
- functions, and static cast was used to convert from the helper
- class to the adjacency_list derived class.
-
- Looking back, it might have been better to write out all functions
- in terms of the adjacency_list, and then use a tag to dispatch
- to the various helpers instead of using inheritance.
-
- */
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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 ADSTL_ARRAY_BINARY_TREE_HPP
-#define ADSTL_ARRAY_BINARY_TREE_HPP
-
-#include <iterator>
-#include <functional>
-#include <boost/config.hpp>
-
-namespace adstl {
- /*
- Note: array_binary_tree is a completey balanced binary tree
- */
-
-#if !defined BOOST_NO_STD_ITERATOR_TRAITS
- template <class RandomAccessIterator, class ID>
-#else
- template <class RandomAccessIterator, class ValueType, class ID>
-#endif
-class array_binary_tree_node {
-public:
- typedef array_binary_tree_node ArrayBinaryTreeNode;
- typedef RandomAccessIterator rep_iterator;
-#if !defined BOOST_NO_STD_ITERATOR_TRAITS
- typedef typename std::iterator_traits<RandomAccessIterator>::difference_type
- difference_type;
- typedef typename std::iterator_traits<RandomAccessIterator>::value_type
- value_type;
-#else
- typedef int difference_type;
- typedef ValueType value_type;
-#endif
- typedef difference_type size_type;
-
- struct children_type {
- struct iterator
- : boost::iterator<std::bidirectional_iterator_tag, ArrayBinaryTreeNode,
- difference_type, array_binary_tree_node*, ArrayBinaryTreeNode&>
- { // replace with iterator_adaptor implementation -JGS
-
- inline iterator() : i(0), n(0) { }
- inline iterator(const iterator& x) : r(x.r), i(x.i), n(x.n), id(x.id) { }
- inline iterator& operator=(const iterator& x) {
- r = x.r; i = x.i; n = x.n;
- /*egcs generate a warning*/
- id = x.id;
- return *this;
- }
- inline iterator(rep_iterator rr,
- size_type ii,
- size_type nn,
- const ID& _id) : r(rr), i(ii), n(nn), id(_id) { }
- inline array_binary_tree_node operator*() {
- return ArrayBinaryTreeNode(r, i, n, id); }
- inline iterator& operator++() { ++i; return *this; }
- inline iterator operator++(int)
- { iterator t = *this; ++(*this); return t; }
- inline bool operator==(const iterator& x) const { return i == x.i; }
- inline bool operator!=(const iterator& x) const
- { return !(*this == x); }
- rep_iterator r;
- size_type i;
- size_type n;
- ID id;
- };
- inline children_type() : i(0), n(0) { }
- inline children_type(const children_type& x)
- : r(x.r), i(x.i), n(x.n), id(x.id) { }
- inline children_type& operator=(const children_type& x) {
- r = x.r; i = x.i; n = x.n;
- /*egcs generate a warning*/
- id = x.id;
- return *this;
- }
- inline children_type(rep_iterator rr,
- size_type ii,
- size_type nn,
- const ID& _id) : r(rr), i(ii), n(nn), id(_id) { }
- inline iterator begin() { return iterator(r, 2 * i + 1, n, id); }
- inline iterator end() { return iterator(r, 2 * i + 1 + size(), n, id); }
- inline size_type size() const {
- size_type c = 2 * i + 1;
- size_type s;
- if (c + 1 < n) s = 2;
- else if (c < n) s = 1;
- else s = 0;
- return s;
- }
- rep_iterator r;
- size_type i;
- size_type n;
- ID id;
- };
- inline array_binary_tree_node() : i(0), n(0) { }
- inline array_binary_tree_node(const array_binary_tree_node& x)
- : r(x.r), i(x.i), n(x.n), id(x.id) { }
- inline ArrayBinaryTreeNode& operator=(const ArrayBinaryTreeNode& x) {
- r = x.r;
- i = x.i;
- n = x.n;
- /*egcs generate a warning*/
- id = x.id;
- return *this;
- }
- inline array_binary_tree_node(rep_iterator start,
- rep_iterator end,
- rep_iterator pos, const ID& _id)
- : r(start), i(pos - start), n(end - start), id(_id) { }
- inline array_binary_tree_node(rep_iterator rr,
- size_type ii,
- size_type nn, const ID& _id)
- : r(rr), i(ii), n(nn), id(_id) { }
- inline value_type& value() { return *(r + i); }
- inline const value_type& value() const { return *(r + i); }
- inline ArrayBinaryTreeNode parent() const {
- return ArrayBinaryTreeNode(r, (i - 1) / 2, n, id);
- }
- inline bool has_parent() const { return i != 0; }
- inline children_type children() { return children_type(r, i, n, id); }
- /*
- inline void swap(array_binary_tree_node x) {
- value_type tmp = x.value();
- x.value() = value();
- value() = tmp;
- i = x.i;
- }
- */
- template <class ExternalData>
- inline void swap(ArrayBinaryTreeNode x, ExternalData& edata ) {
- value_type tmp = x.value();
-
- /*swap external data*/
- edata[ boost::get(id, tmp) ] = i;
- edata[ boost::get(id, value()) ] = x.i;
-
- x.value() = value();
- value() = tmp;
- i = x.i;
- }
- inline const children_type children() const {
- return children_type(r, i, n);
- }
- inline size_type index() const { return i; }
- rep_iterator r;
- size_type i;
- size_type n;
- ID id;
-};
-
-template <class RandomAccessContainer,
- class Compare = std::less<typename RandomAccessContainer::value_type> >
-struct compare_array_node {
- typedef typename RandomAccessContainer::value_type value_type;
- compare_array_node(const Compare& x) : comp(x) {}
- compare_array_node(const compare_array_node& x) : comp(x.comp) {}
-
- template< class node_type >
- inline bool operator()(const node_type& x, const node_type& y) {
- return comp(x.value(), y.value());
- }
-
- template< class node_type >
- inline bool operator()(const node_type& x, const node_type& y) const {
- return comp(x.value(), y.value());
- }
- Compare comp;
-};
-
-
-} /* namespace adstl */
-
-#endif /* ADSTL_ARRAY_BINARY_TREE_H */
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001. Permission to copy, use, modify,
-// sell and distribute this software is granted provided this
-// copyright notice appears in all copies. This software is provided
-// "as is" without express or implied warranty, and with no claim as
-// to its suitability for any purpose.
-
-/*
- * Copyright (c) 1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- */
-
-#include <boost/config.hpp>
-#include <memory>
-#include <stdexcept>
-#include <algorithm>
-#include <string>
-#include <boost/config.hpp>
-#include <boost/pending/ct_if.hpp>
-#include <boost/graph/detail/bitset_adaptor.hpp>
-
-// This provides versions of std::bitset with both static and dynamic size.
-
-// UNDER CONSTRUCTION
-
-
-// replace this later
-#include <cassert>
-#define BOOST_ASSERT_THROW(expr, except) assert(expr)
-
-namespace boost {
-
- namespace detail {
- // structure to aid in counting bits
- template<bool dummy = true>
- struct bit_count {
- static unsigned char value[256];
- };
-
- // Mapping from 8 bit unsigned integers to the index of the first bit
- template<bool dummy = true>
- struct first_bit_location {
- static unsigned char value[256];
- };
-
- template <typename WordType> // this size is in bits
- struct word_traits {
- typedef WordType word_type;
- static const std::size_t word_size = CHAR_BIT * sizeof(word_type);
- };
-
- //=========================================================================
- template <class WordTraits, class SizeType, class Derived>
- class bitset_base
- : public bitset_adaptor< SizeType,
- bitset_base<WordTraits, SizeType, Derived> >
- {
- // private:
- public:
- typedef SizeType size_type;
- typedef typename WordTraits::word_type word_type;
-
- static size_type s_which_word(size_type pos) {
- return pos / WordTraits::word_size;
- }
- static size_type s_which_byte(size_type pos) {
- return (pos % WordTraits::word_size) / CHAR_BIT;
- }
- static size_type s_which_bit(size_type pos) {
- return pos % WordTraits::word_size;
- }
- static word_type s_mask_bit(size_type pos) {
- return (static_cast<word_type>(1)) << s_which_bit(pos);
- }
- word_type& m_get_word(size_type pos) {
- return data()[s_which_word(pos)];
- }
- word_type m_get_word(size_type pos) const {
- return data()[s_which_word(pos)];
- }
- word_type& m_hi_word() { return data()[num_words() - 1]; }
- word_type m_hi_word() const { return data()[num_words() - 1]; }
-
- void m_sanitize_highest() {
- size_type extra_bits = size() % WordTraits::word_size;
- if (extra_bits)
- m_hi_word() &= ~((~static_cast<word_type>(0)) << extra_bits);
- }
- public:
-
- class reference {
- friend class bitset_base;
-
- word_type *m_word_ptr;
- size_type m_bit_pos;
-
- // left undefined
- reference();
-
- reference(bitset_base& b, size_type pos ) {
- m_word_ptr = &b.m_get_word(pos);
- m_bit_pos = s_which_bit(pos);
- }
-
- public:
- ~reference() {}
-
- // for b[i] = x;
- reference& operator=(bool x) {
- if ( x )
- *m_word_ptr |= s_mask_bit(m_bit_pos);
- else
- *m_word_ptr &= ~s_mask_bit(m_bit_pos);
-
- return *this;
- }
- // for b[i] = b[j];
- reference& operator=(const reference& j) {
- if ( (*(j.m_word_ptr) & s_mask_bit(j.m_bit_pos)) )
- *m_word_ptr |= s_mask_bit(m_bit_pos);
- else
- *m_word_ptr &= ~s_mask_bit(m_bit_pos);
-
- return *this;
- }
- // flips the bit
- bool operator~() const {
- return (*(m_word_ptr) & s_mask_bit(m_bit_pos)) == 0;
- }
- // for x = b[i];
- operator bool() const {
- return (*(m_word_ptr) & s_mask_bit(m_bit_pos)) != 0;
- }
- // for b[i].flip();
- reference& flip() {
- *m_word_ptr ^= s_mask_bit(m_bit_pos);
- return *this;
- }
- };
-
- void init_from_ulong(unsigned long val) {
- reset();
- const size_type n = (std::min)(sizeof(unsigned long) * CHAR_BIT,
- WordTraits::word_size * num_words());
- for(size_type i = 0; i < n; ++i, val >>= 1)
- if ( val & 0x1 )
- m_get_word(i) |= s_mask_bit(i);
- }
-
- // intersection: this = this & x
- Derived& operator&=(const Derived& x) {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] &= x.data()[i];
- return static_cast<Derived&>(*this);
- }
- // union: this = this | x
- Derived& operator|=(const Derived& x) {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] |= x.data()[i];
- return static_cast<Derived&>(*this);
- }
- // exclusive or: this = this ^ x
- Derived& operator^=(const Derived& x) {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] ^= x.data()[i];
- return static_cast<Derived&>(*this);
- }
- // left shift
- Derived& operator<<=(size_type pos);
-
- // right shift
- Derived& operator>>=(size_type pos);
-
- Derived& set() {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] = ~static_cast<word_type>(0);
- m_sanitize_highest();
- return static_cast<Derived&>(*this);
- }
-
- Derived& set(size_type pos, int val = true)
- {
- BOOST_ASSERT_THROW(pos < size(), std::out_of_range("boost::bitset::set(pos,value)"));
- if (val)
- m_get_word(pos) |= s_mask_bit(pos);
- else
- m_get_word(pos) &= ~s_mask_bit(pos);
- return static_cast<Derived&>(*this);
- }
-
- Derived& reset() {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] = 0;
- return static_cast<Derived&>(*this);
- }
-
- Derived& reset(size_type pos) {
- BOOST_ASSERT_THROW(pos < size(), std::out_of_range("boost::bitset::reset(pos)"));
- m_get_word(pos) &= ~s_mask_bit(pos);
- return static_cast<Derived&>(*this);
- }
-
- // compliment
- Derived operator~() const {
- return Derived(static_cast<const Derived&>(*this)).flip();
- }
-
- Derived& flip() {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] = ~data()[i];
- m_sanitize_highest();
- return static_cast<Derived&>(*this);
- }
- Derived& flip(size_type pos) {
- BOOST_ASSERT_THROW(pos < size(), std::out_of_range("boost::bitset::flip(pos)"));
- m_get_word(pos) ^= s_mask_bit(pos);
- return static_cast<Derived&>(*this);
- }
-
- // element access
- reference operator[](size_type pos) { return reference(*this, pos); }
- bool operator[](size_type pos) const { return test(pos); }
-
- unsigned long to_ulong() const;
-
- // to_string
-
-
- size_type count() const {
- size_type result = 0;
- const unsigned char* byte_ptr = (const unsigned char*)data();
- const unsigned char* end_ptr =
- (const unsigned char*)(data() + num_words());
- while ( byte_ptr < end_ptr ) {
- result += bit_count<>::value[*byte_ptr];
- byte_ptr++;
- }
- return result;
- }
-
- // size() must be provided by Derived class
-
- bool operator==(const Derived& x) const {
- return std::equal(data(), data() + num_words(), x.data());
- }
-
- bool operator!=(const Derived& x) const {
- return ! this->operator==(x);
- }
-
- bool test(size_type pos) const {
- BOOST_ASSERT_THROW(pos < size(), std::out_of_range("boost::bitset::test(pos)"));
- return (m_get_word(pos) & s_mask_bit(pos))
- != static_cast<word_type>(0);
- }
-
- bool any() const {
- for (size_type i = 0; i < num_words(); ++i) {
- if ( data()[i] != static_cast<word_type>(0) )
- return true;
- }
- return false;
- }
- bool none() const {
- return !any();
- }
-
- Derived operator<<(size_type pos) const
- { return Derived(static_cast<const Derived&>(*this)) <<= pos; }
-
- Derived operator>>(size_type pos) const
- { return Derived(static_cast<const Derived&>(*this)) >>= pos; }
-
- template <class CharT, class Traits, class Alloc>
- void m_copy_from_string(const basic_string<CharT,Traits,Alloc>& s,
- size_type pos, size_type n)
- {
- reset();
- const size_type nbits = (std::min)(size(), (std::min)(n, s.size() - pos));
- for (size_type i = 0; i < nbits; ++i) {
- switch(s[pos + nbits - i - 1]) {
- case '0':
- break;
- case '1':
- this->set(i);
- break;
- default:
- throw std::invalid_argument
- ("boost::bitset_base::m_copy_from_string(s, pos, n)");
- }
- }
- }
-
- template <class CharT, class Traits, class Alloc>
- void m_copy_to_string(basic_string<CharT, Traits, Alloc>& s) const
- {
- s.assign(size(), '0');
-
- for (size_type i = 0; i < size(); ++i)
- if (test(i))
- s[size() - 1 - i] = '1';
- }
-
- //-----------------------------------------------------------------------
- // Stuff not in std::bitset
-
- // difference: this = this - x
- Derived& operator-=(const Derived& x) {
- for (size_type i = 0; i < num_words(); ++i)
- data()[i] &= ~x.data()[i];
- return static_cast<Derived&>(*this);
- }
-
- // this wasn't working, why?
- int compare_3way(const Derived& x) const {
- return std::lexicographical_compare_3way
- (data(), data() + num_words(), x.data(), x.data() + x.num_words());
- }
-
- // less-than compare
- bool operator<(const Derived& x) const {
- return std::lexicographical_compare
- (data(), data() + num_words(), x.data(), x.data() + x.num_words());
- }
-
- // find the index of the first "on" bit
- size_type find_first() const;
-
- // find the index of the next "on" bit after prev
- size_type find_next(size_type prev) const;
-
-
- size_type _Find_first() const { return find_first(); }
-
- // find the index of the next "on" bit after prev
- size_type _Find_next(size_type prev) const { return find_next(prev); }
-
- // private:
- word_type* data()
- { return static_cast<Derived*>(this)->data(); }
-
- const word_type* data() const
- { return static_cast<const Derived*>(this)->data(); }
-
- size_type num_words() const
- { return static_cast<const Derived*>(this)->num_words(); }
-
- size_type size() const
- { return static_cast<const Derived*>(this)->size(); }
- };
-
- // 23.3.5.3 bitset operations:
- template <class W, class S, class D>
- inline D operator&(const bitset_base<W,S,D>& x,
- const bitset_base<W,S,D>& y) {
- D result(static_cast<const D&>(x));
- result &= static_cast<const D&>(y);
- return result;
- }
-
- template <class W, class S, class D>
- inline D operator|(const bitset_base<W,S,D>& x,
- const bitset_base<W,S,D>& y) {
- D result(static_cast<const D&>(x));
- result |= static_cast<const D&>(y);
- return result;
- }
-
- template <class W, class S, class D>
- inline D operator^(const bitset_base<W,S,D>& x,
- const bitset_base<W,S,D>& y) {
- D result(static_cast<const D&>(x));
- result ^= static_cast<const D&>(y);
- return result;
- }
-
- // this one is an extension
- template <class W, class S, class D>
- inline D operator-(const bitset_base<W,S,D>& x,
- const bitset_base<W,S,D>& y) {
- D result(static_cast<const D&>(x));
- result -= static_cast<const D&>(y);
- return result;
- }
-
- template <class W, class S, class D>
- inline int compare_3way(const bitset_base<W,S,D>& x,
- const bitset_base<W,S,D>& y) {
- return std::lexicographical_compare_3way
- (x.data(), x.data() + x.num_words(),
- y.data(), y.data() + y.num_words());
- }
-
-
- template <class W, class S, class D>
- std::istream&
- operator>>(std::istream& is, bitset_base<W,S,D>& x) {
- std::string tmp;
- tmp.reserve(x.size());
-
- // In new templatized iostreams, use istream::sentry
- if (is.flags() & ios::skipws) {
- char c;
- do
- is.get(c);
- while (is && isspace(c));
- if (is)
- is.putback(c);
- }
-
- for (S i = 0; i < x.size(); ++i) {
- char c;
- is.get(c);
-
- if (!is)
- break;
- else if (c != '0' && c != '1') {
- is.putback(c);
- break;
- }
- else
- // tmp.push_back(c);
- tmp += c;
- }
-
- if (tmp.empty())
- is.clear(is.rdstate() | ios::failbit);
- else
- x.m_copy_from_string(tmp, static_cast<S>(0), x.size());
-
- return is;
- }
-
- template <class W, class S, class D>
- std::ostream& operator<<(std::ostream& os,
- const bitset_base<W,S,D>& x) {
- std::string tmp;
- x.m_copy_to_string(tmp);
- return os << tmp;
- }
-
- //=========================================================================
- template <typename WordType = unsigned long,
- typename SizeType = std::size_t,
- typename Allocator = std::allocator<WordType>
- >
- class dyn_size_bitset
- : public bitset_base<word_traits<WordType>, SizeType,
- dyn_size_bitset<WordType,SizeType,Allocator> >
- {
- typedef dyn_size_bitset self;
- public:
- typedef SizeType size_type;
- private:
- typedef word_traits<WordType> WordTraits;
- static const size_type word_size = WordTraits::word_size;
-
- public:
- dyn_size_bitset(unsigned long val,
- size_type n,
- const Allocator& alloc = Allocator())
- : m_data(alloc.allocate((n + word_size - 1) / word_size)),
- m_size(n),
- m_num_words((n + word_size - 1) / word_size),
- m_alloc(alloc)
- {
- init_from_ulong(val);
- }
-
- dyn_size_bitset(size_type n, // size of the set's "universe"
- const Allocator& alloc = Allocator())
- : m_data(alloc.allocate((n + word_size - 1) / word_size)),
- m_size(n), m_num_words((n + word_size - 1) / word_size),
- m_alloc(alloc)
- { }
-
- template<class CharT, class Traits, class Alloc>
- explicit dyn_size_bitset
- (const basic_string<CharT,Traits,Alloc>& s,
- std::size_t pos = 0,
- std::size_t n = std::size_t(basic_string<CharT,Traits,Alloc>::npos),
- const Allocator& alloc = Allocator())
- : m_data(alloc.allocate((n + word_size - 1) / word_size)),
- m_size(n), m_num_words((n + word_size - 1) / word_size),
- m_alloc(alloc)
- {
- BOOST_ASSERT_THROW(pos < s.size(), std::out_of_range("dyn_size_bitset::dyn_size_bitset(s,pos,n,alloc)"));
- m_copy_from_string(s, pos, n);
- }
-
- template <typename InputIterator>
- explicit dyn_size_bitset
- (InputIterator first, InputIterator last,
- size_type n, // size of the set's "universe"
- const Allocator& alloc = Allocator())
- : m_data(alloc.allocate((n + word_size - 1) / word_size)),
- m_size(N), m_num_words((n + word_size - 1) / word_size),
- m_alloc(alloc)
- {
- while (first != last)
- this->set(*first++);
- }
-
- ~dyn_size_bitset() {
- m_alloc.deallocate(m_data, m_num_words);
- }
-
- size_type size() const { return m_size; }
-
- // protected:
- size_type num_words() const { return m_num_words; }
-
- word_type* data() { return m_data; }
- const word_type* data() const { return m_data; }
-
- protected:
- word_type* m_data;
- SizeType m_size;
- SizeType m_num_words;
- Allocator m_alloc;
- };
-
- //=========================================================================
- template <std::size_t N, typename WordType = unsigned long,
- typename SizeType = std::size_t>
- class bitset
- : public bitset_base<word_traits<WordType>, SizeType,
- bitset<N, WordType, SizeType> >
- {
- typedef bitset self;
- static const std::size_t word_size = word_traits<WordType>::word_size;
- public:
- // 23.3.5.1 constructors:
- bitset() {
-#if defined(__GNUC__)
- for (size_type i = 0; i < num_words(); ++i)
- m_data[i] = static_cast<WordType>(0);
-#endif
- }
-
- bitset(unsigned long val) {
- init_from_ulong(val);
- }
-
- template<class CharT, class Traits, class Alloc>
- explicit bitset
- (const basic_string<CharT,Traits,Alloc>& s,
- std::size_t pos = 0,
- std::size_t n = std::size_t(basic_string<CharT,Traits,Alloc>::npos))
- {
- BOOST_ASSERT_THROW
- (pos < s.size(), std::out_of_range("bitset::bitset(s,pos,n)"));
- m_copy_from_string(s, pos, n);
- }
-
- size_type size() const { return N; }
-
- // protected:
- size_type num_words() const { return (N + word_size - 1) / word_size; }
-
- word_type* data() { return m_data; }
- const word_type* data() const { return m_data; }
- protected:
- word_type m_data[(N + word_size - 1) / word_size];
- };
-
- //=========================================================================
- struct select_static_bitset {
- template <std::size_t N, typename WordT, typename SizeT, typename Alloc>
- struct bind_ {
- typedef bitset<N, WordT, SizeT> type;
- };
- };
- struct select_dyn_size_bitset {
- template <std::size_t N, typename WordT, typename SizeT, typename Alloc>
- struct bind_ {
- typedef dyn_size_bitset<WordT, SizeT, Alloc> type;
- };
- };
-
- template <std::size_t N = 0, // 0 means use dynamic
- typename WordType = unsigned long,
- typename Size_type = std::size_t,
- typename Allocator = std::allocator<WordType>
- >
- class bitset_generator {
- typedef typename ct_if<N, select_dyn_size_bitset,
- select_static_bitset>::type selector;
- public:
- typedef typename selector
- ::template bind_<N, WordType, SizeType, Allocator>::type type;
- };
-
-
- //=========================================================================
- // bitset_base non-inline member function implementations
-
- template <class WordTraits, class SizeType, class Derived>
- Derived&
- bitset_base<WordTraits, SizeType, Derived>::
- operator<<=(size_type shift)
- {
- typedef typename WordTraits::word_type word_type;
- typedef SizeType size_type;
- if (shift != 0) {
- const size_type wshift = shift / WordTraits::word_size;
- const size_type offset = shift % WordTraits::word_size;
- const size_type sub_offset = WordTraits::word_size - offset;
- size_type n = num_words() - 1;
- for ( ; n > wshift; --n)
- data()[n] = (data()[n - wshift] << offset) |
- (data()[n - wshift - 1] >> sub_offset);
- if (n == wshift)
- data()[n] = data()[0] << offset;
- for (size_type n1 = 0; n1 < n; ++n1)
- data()[n1] = static_cast<word_type>(0);
- }
- m_sanitize_highest();
- return static_cast<Derived&>(*this);
- } // end operator<<=
-
-
- template <class WordTraits, class SizeType, class Derived>
- Derived&
- bitset_base<WordTraits, SizeType, Derived>::
- operator>>=(size_type shift)
- {
- typedef typename WordTraits::word_type word_type;
- typedef SizeType size_type;
- if (shift != 0) {
- const size_type wshift = shift / WordTraits::word_size;
- const size_type offset = shift % WordTraits::word_size;
- const size_type sub_offset = WordTraits::word_size - offset;
- const size_type limit = num_words() - wshift - 1;
- size_type n = 0;
- for ( ; n < limit; ++n)
- data()[n] = (data()[n + wshift] >> offset) |
- (data()[n + wshift + 1] << sub_offset);
- data()[limit] = data()[num_words()-1] >> offset;
- for (size_type n1 = limit + 1; n1 < num_words(); ++n1)
- data()[n1] = static_cast<word_type>(0);
- }
- m_sanitize_highest();
- return static_cast<Derived&>(*this);
- } // end operator>>=
-
-
- template <class WordTraits, class SizeType, class Derived>
- unsigned long bitset_base<WordTraits, SizeType, Derived>::
- to_ulong() const
- {
- typedef typename WordTraits::word_type word_type;
- typedef SizeType size_type;
- const std::overflow_error
- overflow("boost::bit_set::operator unsigned long()");
-
- if (sizeof(word_type) >= sizeof(unsigned long)) {
- for (size_type i = 1; i < num_words(); ++i)
- BOOST_ASSERT_THROW(! data()[i], overflow);
-
- const word_type mask
- = static_cast<word_type>(static_cast<unsigned long>(-1));
- BOOST_ASSERT_THROW(! (data()[0] & ~mask), overflow);
-
- return static_cast<unsigned long>(data()[0] & mask);
- }
- else { // sizeof(word_type) < sizeof(unsigned long).
- const size_type nwords =
- (sizeof(unsigned long) + sizeof(word_type) - 1) / sizeof(word_type);
-
- size_type min_nwords = nwords;
- if (num_words() > nwords) {
- for (size_type i = nwords; i < num_words(); ++i)
- BOOST_ASSERT_THROW(!data()[i], overflow);
- }
- else
- min_nwords = num_words();
-
- // If unsigned long is 8 bytes and word_type is 6 bytes, then
- // an unsigned long consists of all of one word plus 2 bytes
- // from another word.
- const size_type part = sizeof(unsigned long) % sizeof(word_type);
-
-#if 0
- // bug in here?
- // >> to far?
- BOOST_ASSERT_THROW((part != 0
- && nwords <= num_words()
- && (data()[min_nwords - 1] >>
- ((sizeof(word_type) - part) * CHAR_BIT)) != 0),
- overflow);
-#endif
-
- unsigned long result = 0;
- for (size_type i = 0; i < min_nwords; ++i) {
- result |= static_cast<unsigned long>(
- data()[i]) << (i * sizeof(word_type) * CHAR_BIT);
- }
- return result;
- }
- }// end operator unsigned long()
-
-
- template <class WordTraits, class SizeType, class Derived>
- SizeType bitset_base<WordTraits,SizeType,Derived>::
- find_first() const
- {
- SizeType not_found = size();
- for (size_type i = 0; i < num_words(); i++ ) {
- word_type thisword = data()[i];
- if ( thisword != static_cast<word_type>(0) ) {
- // find byte within word
- for ( std::size_t j = 0; j < sizeof(word_type); j++ ) {
- unsigned char this_byte
- = static_cast<unsigned char>(thisword & (~(unsigned char)0));
- if ( this_byte )
- return i * WordTraits::word_size + j * CHAR_BIT +
- first_bit_location<>::value[this_byte];
-
- thisword >>= CHAR_BIT;
- }
- }
- }
- // not found, so return an indication of failure.
- return not_found;
- }
-
- template <class WordTraits, class SizeType, class Derived>
- SizeType bitset_base<WordTraits, SizeType, Derived>::
- bitset_base<WordTraits,SizeType,Derived>::
- find_next(size_type prev) const
- {
- SizeType not_found = size();
- // make bound inclusive
- ++prev;
-
- // check out of bounds
- if ( prev >= num_words() * WordTraits::word_size )
- return not_found;
-
- // search first word
- size_type i = s_which_word(prev);
- word_type thisword = data()[i];
-
- // mask off bits below bound
- thisword &= (~static_cast<word_type>(0)) << s_which_bit(prev);
-
- if ( thisword != static_cast<word_type>(0) ) {
- // find byte within word
- // get first byte into place
- thisword >>= s_which_byte(prev) * CHAR_BIT;
- for ( size_type j = s_which_byte(prev); j < sizeof(word_type); j++ ) {
- unsigned char this_byte
- = static_cast<unsigned char>(thisword & (~(unsigned char)0));
- if ( this_byte )
- return i * WordTraits::word_size + j * CHAR_BIT +
- first_bit_location<>::value[this_byte];
-
- thisword >>= CHAR_BIT;
- }
- }
-
- // check subsequent words
- i++;
- for ( ; i < num_words(); i++ ) {
- word_type thisword = data()[i];
- if ( thisword != static_cast<word_type>(0) ) {
- // find byte within word
- for ( size_type j = 0; j < sizeof(word_type); j++ ) {
- unsigned char this_byte
- = static_cast<unsigned char>(thisword & (~(unsigned char)0));
- if ( this_byte )
- return i * WordTraits::word_size + j * CHAR_BIT +
- first_bit_location<>::value[this_byte];
-
- thisword >>= CHAR_BIT;
- }
- }
- }
-
- // not found, so return an indication of failure.
- return not_found;
- } // end find_next
-
-
- template <bool dummy>
- unsigned char bit_count<dummy>::value[] = {
- 0, /* 0 */ 1, /* 1 */ 1, /* 2 */ 2, /* 3 */ 1, /* 4 */
- 2, /* 5 */ 2, /* 6 */ 3, /* 7 */ 1, /* 8 */ 2, /* 9 */
- 2, /* 10 */ 3, /* 11 */ 2, /* 12 */ 3, /* 13 */ 3, /* 14 */
- 4, /* 15 */ 1, /* 16 */ 2, /* 17 */ 2, /* 18 */ 3, /* 19 */
- 2, /* 20 */ 3, /* 21 */ 3, /* 22 */ 4, /* 23 */ 2, /* 24 */
- 3, /* 25 */ 3, /* 26 */ 4, /* 27 */ 3, /* 28 */ 4, /* 29 */
- 4, /* 30 */ 5, /* 31 */ 1, /* 32 */ 2, /* 33 */ 2, /* 34 */
- 3, /* 35 */ 2, /* 36 */ 3, /* 37 */ 3, /* 38 */ 4, /* 39 */
- 2, /* 40 */ 3, /* 41 */ 3, /* 42 */ 4, /* 43 */ 3, /* 44 */
- 4, /* 45 */ 4, /* 46 */ 5, /* 47 */ 2, /* 48 */ 3, /* 49 */
- 3, /* 50 */ 4, /* 51 */ 3, /* 52 */ 4, /* 53 */ 4, /* 54 */
- 5, /* 55 */ 3, /* 56 */ 4, /* 57 */ 4, /* 58 */ 5, /* 59 */
- 4, /* 60 */ 5, /* 61 */ 5, /* 62 */ 6, /* 63 */ 1, /* 64 */
- 2, /* 65 */ 2, /* 66 */ 3, /* 67 */ 2, /* 68 */ 3, /* 69 */
- 3, /* 70 */ 4, /* 71 */ 2, /* 72 */ 3, /* 73 */ 3, /* 74 */
- 4, /* 75 */ 3, /* 76 */ 4, /* 77 */ 4, /* 78 */ 5, /* 79 */
- 2, /* 80 */ 3, /* 81 */ 3, /* 82 */ 4, /* 83 */ 3, /* 84 */
- 4, /* 85 */ 4, /* 86 */ 5, /* 87 */ 3, /* 88 */ 4, /* 89 */
- 4, /* 90 */ 5, /* 91 */ 4, /* 92 */ 5, /* 93 */ 5, /* 94 */
- 6, /* 95 */ 2, /* 96 */ 3, /* 97 */ 3, /* 98 */ 4, /* 99 */
- 3, /* 100 */ 4, /* 101 */ 4, /* 102 */ 5, /* 103 */ 3, /* 104 */
- 4, /* 105 */ 4, /* 106 */ 5, /* 107 */ 4, /* 108 */ 5, /* 109 */
- 5, /* 110 */ 6, /* 111 */ 3, /* 112 */ 4, /* 113 */ 4, /* 114 */
- 5, /* 115 */ 4, /* 116 */ 5, /* 117 */ 5, /* 118 */ 6, /* 119 */
- 4, /* 120 */ 5, /* 121 */ 5, /* 122 */ 6, /* 123 */ 5, /* 124 */
- 6, /* 125 */ 6, /* 126 */ 7, /* 127 */ 1, /* 128 */ 2, /* 129 */
- 2, /* 130 */ 3, /* 131 */ 2, /* 132 */ 3, /* 133 */ 3, /* 134 */
- 4, /* 135 */ 2, /* 136 */ 3, /* 137 */ 3, /* 138 */ 4, /* 139 */
- 3, /* 140 */ 4, /* 141 */ 4, /* 142 */ 5, /* 143 */ 2, /* 144 */
- 3, /* 145 */ 3, /* 146 */ 4, /* 147 */ 3, /* 148 */ 4, /* 149 */
- 4, /* 150 */ 5, /* 151 */ 3, /* 152 */ 4, /* 153 */ 4, /* 154 */
- 5, /* 155 */ 4, /* 156 */ 5, /* 157 */ 5, /* 158 */ 6, /* 159 */
- 2, /* 160 */ 3, /* 161 */ 3, /* 162 */ 4, /* 163 */ 3, /* 164 */
- 4, /* 165 */ 4, /* 166 */ 5, /* 167 */ 3, /* 168 */ 4, /* 169 */
- 4, /* 170 */ 5, /* 171 */ 4, /* 172 */ 5, /* 173 */ 5, /* 174 */
- 6, /* 175 */ 3, /* 176 */ 4, /* 177 */ 4, /* 178 */ 5, /* 179 */
- 4, /* 180 */ 5, /* 181 */ 5, /* 182 */ 6, /* 183 */ 4, /* 184 */
- 5, /* 185 */ 5, /* 186 */ 6, /* 187 */ 5, /* 188 */ 6, /* 189 */
- 6, /* 190 */ 7, /* 191 */ 2, /* 192 */ 3, /* 193 */ 3, /* 194 */
- 4, /* 195 */ 3, /* 196 */ 4, /* 197 */ 4, /* 198 */ 5, /* 199 */
- 3, /* 200 */ 4, /* 201 */ 4, /* 202 */ 5, /* 203 */ 4, /* 204 */
- 5, /* 205 */ 5, /* 206 */ 6, /* 207 */ 3, /* 208 */ 4, /* 209 */
- 4, /* 210 */ 5, /* 211 */ 4, /* 212 */ 5, /* 213 */ 5, /* 214 */
- 6, /* 215 */ 4, /* 216 */ 5, /* 217 */ 5, /* 218 */ 6, /* 219 */
- 5, /* 220 */ 6, /* 221 */ 6, /* 222 */ 7, /* 223 */ 3, /* 224 */
- 4, /* 225 */ 4, /* 226 */ 5, /* 227 */ 4, /* 228 */ 5, /* 229 */
- 5, /* 230 */ 6, /* 231 */ 4, /* 232 */ 5, /* 233 */ 5, /* 234 */
- 6, /* 235 */ 5, /* 236 */ 6, /* 237 */ 6, /* 238 */ 7, /* 239 */
- 4, /* 240 */ 5, /* 241 */ 5, /* 242 */ 6, /* 243 */ 5, /* 244 */
- 6, /* 245 */ 6, /* 246 */ 7, /* 247 */ 5, /* 248 */ 6, /* 249 */
- 6, /* 250 */ 7, /* 251 */ 6, /* 252 */ 7, /* 253 */ 7, /* 254 */
- 8 /* 255 */
- }; // end _Bit_count
-
- template <bool dummy>
- unsigned char first_bit_location<dummy>::value[] = {
- 0, /* 0 */ 0, /* 1 */ 1, /* 2 */ 0, /* 3 */ 2, /* 4 */
- 0, /* 5 */ 1, /* 6 */ 0, /* 7 */ 3, /* 8 */ 0, /* 9 */
- 1, /* 10 */ 0, /* 11 */ 2, /* 12 */ 0, /* 13 */ 1, /* 14 */
- 0, /* 15 */ 4, /* 16 */ 0, /* 17 */ 1, /* 18 */ 0, /* 19 */
- 2, /* 20 */ 0, /* 21 */ 1, /* 22 */ 0, /* 23 */ 3, /* 24 */
- 0, /* 25 */ 1, /* 26 */ 0, /* 27 */ 2, /* 28 */ 0, /* 29 */
- 1, /* 30 */ 0, /* 31 */ 5, /* 32 */ 0, /* 33 */ 1, /* 34 */
- 0, /* 35 */ 2, /* 36 */ 0, /* 37 */ 1, /* 38 */ 0, /* 39 */
- 3, /* 40 */ 0, /* 41 */ 1, /* 42 */ 0, /* 43 */ 2, /* 44 */
- 0, /* 45 */ 1, /* 46 */ 0, /* 47 */ 4, /* 48 */ 0, /* 49 */
- 1, /* 50 */ 0, /* 51 */ 2, /* 52 */ 0, /* 53 */ 1, /* 54 */
- 0, /* 55 */ 3, /* 56 */ 0, /* 57 */ 1, /* 58 */ 0, /* 59 */
- 2, /* 60 */ 0, /* 61 */ 1, /* 62 */ 0, /* 63 */ 6, /* 64 */
- 0, /* 65 */ 1, /* 66 */ 0, /* 67 */ 2, /* 68 */ 0, /* 69 */
- 1, /* 70 */ 0, /* 71 */ 3, /* 72 */ 0, /* 73 */ 1, /* 74 */
- 0, /* 75 */ 2, /* 76 */ 0, /* 77 */ 1, /* 78 */ 0, /* 79 */
- 4, /* 80 */ 0, /* 81 */ 1, /* 82 */ 0, /* 83 */ 2, /* 84 */
- 0, /* 85 */ 1, /* 86 */ 0, /* 87 */ 3, /* 88 */ 0, /* 89 */
- 1, /* 90 */ 0, /* 91 */ 2, /* 92 */ 0, /* 93 */ 1, /* 94 */
- 0, /* 95 */ 5, /* 96 */ 0, /* 97 */ 1, /* 98 */ 0, /* 99 */
- 2, /* 100 */ 0, /* 101 */ 1, /* 102 */ 0, /* 103 */ 3, /* 104 */
- 0, /* 105 */ 1, /* 106 */ 0, /* 107 */ 2, /* 108 */ 0, /* 109 */
- 1, /* 110 */ 0, /* 111 */ 4, /* 112 */ 0, /* 113 */ 1, /* 114 */
- 0, /* 115 */ 2, /* 116 */ 0, /* 117 */ 1, /* 118 */ 0, /* 119 */
- 3, /* 120 */ 0, /* 121 */ 1, /* 122 */ 0, /* 123 */ 2, /* 124 */
- 0, /* 125 */ 1, /* 126 */ 0, /* 127 */ 7, /* 128 */ 0, /* 129 */
- 1, /* 130 */ 0, /* 131 */ 2, /* 132 */ 0, /* 133 */ 1, /* 134 */
- 0, /* 135 */ 3, /* 136 */ 0, /* 137 */ 1, /* 138 */ 0, /* 139 */
- 2, /* 140 */ 0, /* 141 */ 1, /* 142 */ 0, /* 143 */ 4, /* 144 */
- 0, /* 145 */ 1, /* 146 */ 0, /* 147 */ 2, /* 148 */ 0, /* 149 */
- 1, /* 150 */ 0, /* 151 */ 3, /* 152 */ 0, /* 153 */ 1, /* 154 */
- 0, /* 155 */ 2, /* 156 */ 0, /* 157 */ 1, /* 158 */ 0, /* 159 */
- 5, /* 160 */ 0, /* 161 */ 1, /* 162 */ 0, /* 163 */ 2, /* 164 */
- 0, /* 165 */ 1, /* 166 */ 0, /* 167 */ 3, /* 168 */ 0, /* 169 */
- 1, /* 170 */ 0, /* 171 */ 2, /* 172 */ 0, /* 173 */ 1, /* 174 */
- 0, /* 175 */ 4, /* 176 */ 0, /* 177 */ 1, /* 178 */ 0, /* 179 */
- 2, /* 180 */ 0, /* 181 */ 1, /* 182 */ 0, /* 183 */ 3, /* 184 */
- 0, /* 185 */ 1, /* 186 */ 0, /* 187 */ 2, /* 188 */ 0, /* 189 */
- 1, /* 190 */ 0, /* 191 */ 6, /* 192 */ 0, /* 193 */ 1, /* 194 */
- 0, /* 195 */ 2, /* 196 */ 0, /* 197 */ 1, /* 198 */ 0, /* 199 */
- 3, /* 200 */ 0, /* 201 */ 1, /* 202 */ 0, /* 203 */ 2, /* 204 */
- 0, /* 205 */ 1, /* 206 */ 0, /* 207 */ 4, /* 208 */ 0, /* 209 */
- 1, /* 210 */ 0, /* 211 */ 2, /* 212 */ 0, /* 213 */ 1, /* 214 */
- 0, /* 215 */ 3, /* 216 */ 0, /* 217 */ 1, /* 218 */ 0, /* 219 */
- 2, /* 220 */ 0, /* 221 */ 1, /* 222 */ 0, /* 223 */ 5, /* 224 */
- 0, /* 225 */ 1, /* 226 */ 0, /* 227 */ 2, /* 228 */ 0, /* 229 */
- 1, /* 230 */ 0, /* 231 */ 3, /* 232 */ 0, /* 233 */ 1, /* 234 */
- 0, /* 235 */ 2, /* 236 */ 0, /* 237 */ 1, /* 238 */ 0, /* 239 */
- 4, /* 240 */ 0, /* 241 */ 1, /* 242 */ 0, /* 243 */ 2, /* 244 */
- 0, /* 245 */ 1, /* 246 */ 0, /* 247 */ 3, /* 248 */ 0, /* 249 */
- 1, /* 250 */ 0, /* 251 */ 2, /* 252 */ 0, /* 253 */ 1, /* 254 */
- 0, /* 255 */
- }; // end _First_one
-
- } // namespace detail
-
-} // namespace boost
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_BITSET_ADAPTOR_HPP
-#define BOOST_BITSET_ADAPTOR_HPP
-
- template <class T, class Derived>
- struct bitset_adaptor {
- Derived& derived() { return static_cast<Derived&>(*this); }
- const Derived& derived() const {
- return static_cast<const Derived&>(*this);
- }
- };
-
- template <class T, class D, class V>
- bool set_contains(const bitset_adaptor<T,D>& s, const V& x) {
- return s.derived().test(x);
- }
-
- template <class T, class D>
- bool set_equal(const bitset_adaptor<T,D>& x,
- const bitset_adaptor<T,D>& y) {
- return x.derived() == y.derived();
- }
-
- template <class T, class D>
- int set_lex_order(const bitset_adaptor<T,D>& x,
- const bitset_adaptor<T,D>& y) {
- return compare_3way(x.derived(), y.derived());
- }
-
- template <class T, class D>
- void set_clear(bitset_adaptor<T,D>& x) {
- x.derived().reset();
- }
-
- template <class T, class D>
- bool set_empty(const bitset_adaptor<T,D>& x) {
- return x.derived().none();
- }
-
- template <class T, class D, class V>
- void set_insert(bitset_adaptor<T,D>& x, const V& a) {
- x.derived().set(a);
- }
-
- template <class T, class D, class V>
- void set_remove(bitset_adaptor<T,D>& x, const V& a) {
- x.derived().set(a, false);
- }
-
- template <class T, class D>
- void set_intersect(const bitset_adaptor<T,D>& x,
- const bitset_adaptor<T,D>& y,
- bitset_adaptor<T,D>& z)
- {
- z.derived() = x.derived() & y.derived();
- }
-
- template <class T, class D>
- void set_union(const bitset_adaptor<T,D>& x,
- const bitset_adaptor<T,D>& y,
- bitset_adaptor<T,D>& z)
- {
- z.derived() = x.derived() | y.derived();
- }
-
- template <class T, class D>
- void set_difference(const bitset_adaptor<T,D>& x,
- const bitset_adaptor<T,D>& y,
- bitset_adaptor<T,D>& z)
- {
- z.derived() = x.derived() - y.derived();
- }
-
- template <class T, class D>
- void set_compliment(const bitset_adaptor<T,D>& x,
- bitset_adaptor<T,D>& z)
- {
- z.derived() = x.derived();
- z.derived().flip();
- }
-
-#endif // BOOST_BITSET_ADAPTOR_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_CONNECTED_COMPONENTS_HPP
-#define BOOST_GRAPH_DETAIL_CONNECTED_COMPONENTS_HPP
-
-#if defined(__sgi) && !defined(__GNUC__)
-#pragma set woff 1234
-#endif
-
-#include <boost/operators.hpp>
-
-namespace boost {
-
- namespace detail {
-
- //=========================================================================
- // Implementation details of connected_components
-
- // This is used both in the connected_components algorithm and in
- // the kosaraju strong components algorithm during the second DFS
- // traversal.
- template <class ComponentsPA, class DFSVisitor>
- class components_recorder : public DFSVisitor
- {
- typedef typename property_traits<ComponentsPA>::value_type comp_type;
- public:
- components_recorder(ComponentsPA c,
- comp_type& c_count,
- DFSVisitor v)
- : DFSVisitor(v), m_component(c), m_count(c_count) {}
-
- template <class Vertex, class Graph>
- void start_vertex(Vertex u, Graph& g) {
- ++m_count;
- DFSVisitor::start_vertex(u, g);
- }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
- put(m_component, u, m_count);
- DFSVisitor::discover_vertex(u, g);
- }
- protected:
- ComponentsPA m_component;
- comp_type& m_count;
- };
-
- template <class DiscoverTimeMap, class FinishTimeMap, class TimeT,
- class DFSVisitor>
- class time_recorder : public DFSVisitor
- {
- public:
- time_recorder(DiscoverTimeMap d, FinishTimeMap f, TimeT& t, DFSVisitor v)
- : DFSVisitor(v), m_discover_time(d), m_finish_time(f), m_t(t) {}
-
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
- put(m_discover_time, u, ++m_t);
- DFSVisitor::discover_vertex(u, g);
- }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) {
- put(m_finish_time, u, ++m_t);
- DFSVisitor::discover_vertex(u, g);
- }
- protected:
- DiscoverTimeMap m_discover_time;
- FinishTimeMap m_finish_time;
- TimeT m_t;
- };
- template <class DiscoverTimeMap, class FinishTimeMap, class TimeT,
- class DFSVisitor>
- time_recorder<DiscoverTimeMap, FinishTimeMap, TimeT, DFSVisitor>
- record_times(DiscoverTimeMap d, FinishTimeMap f, TimeT& t, DFSVisitor vis)
- {
- return time_recorder<DiscoverTimeMap, FinishTimeMap, TimeT, DFSVisitor>
- (d, f, t, vis);
- }
-
- //=========================================================================
- // Implementation detail of dynamic_components
-
-
- //-------------------------------------------------------------------------
- // Helper functions for the component_index class
-
- // Record the representative vertices in the header array.
- // Representative vertices now point to the component number.
-
- template <class Parent, class OutputIterator, class Integer>
- inline void
- build_components_header(Parent p,
- OutputIterator header,
- Integer num_nodes)
- {
- Parent component = p;
- Integer component_num = 0;
- for (Integer v = 0; v != num_nodes; ++v)
- if (p[v] == v) {
- *header++ = v;
- component[v] = component_num++;
- }
- }
-
-
- // Pushes x onto the front of the list. The list is represented in
- // an array.
- template <class Next, class T, class V>
- inline void push_front(Next next, T& head, V x)
- {
- T tmp = head;
- head = x;
- next[x] = tmp;
- }
-
-
- // Create a linked list of the vertices in each component
- // by reusing the representative array.
- template <class Parent1, class Parent2,
- class Integer>
- void
- link_components(Parent1 component, Parent2 header,
- Integer num_nodes, Integer num_components)
- {
- // Make the non-representative vertices point to their component
- Parent1 representative = component;
- for (Integer v = 0; v != num_nodes; ++v)
- if (component[v] >= num_components || header[component[v]] != v)
- component[v] = component[representative[v]];
-
- // initialize the "head" of the lists to "NULL"
- std::fill_n(header, num_components, num_nodes);
-
- // Add each vertex to the linked list for its component
- Parent1 next = component;
- for (Integer k = 0; k != num_nodes; ++k)
- push_front(next, header[component[k]], k);
- }
-
-
-
- template <class IndexContainer, class HeaderContainer>
- void
- construct_component_index(IndexContainer& index, HeaderContainer& header)
- {
- build_components_header(index.begin(),
- std::back_inserter(header),
- index.end() - index.begin());
-
- link_components(index.begin(), header.begin(),
- index.end() - index.begin(),
- header.end() - header.begin());
- }
-
-
-
- template <class IndexIterator, class Integer, class Distance>
- class component_iterator
- : boost::forward_iterator_helper<
- component_iterator<IndexIterator,Integer,Distance>,
- Integer, Distance,Integer*, Integer&>
- {
- public:
- typedef component_iterator self;
-
- IndexIterator next;
- Integer node;
-
- typedef std::forward_iterator_tag iterator_category;
- typedef Integer value_type;
- typedef Integer& reference;
- typedef Integer* pointer;
- typedef Distance difference_type;
-
- component_iterator() {}
- component_iterator(IndexIterator x, Integer i)
- : next(x), node(i) {}
- Integer operator*() const {
- return node;
- }
- self& operator++() {
- node = next[node];
- return *this;
- }
- };
-
- template <class IndexIterator, class Integer, class Distance>
- inline bool
- operator==(const component_iterator<IndexIterator, Integer, Distance>& x,
- const component_iterator<IndexIterator, Integer, Distance>& y)
- {
- return x.node == y.node;
- }
-
- } // namespace detail
-
-} // namespace detail
-
-#if defined(__sgi) && !defined(__GNUC__)
-#pragma reset woff 1234
-#endif
-
-#endif
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_EDGE_HPP
-#define BOOST_GRAPH_DETAIL_EDGE_HPP
-
-#if __GNUC__ < 3
-#include <iostream>
-#else
-#include <iosfwd>
-#endif
-
-namespace boost {
-
- namespace detail {
-
- template <typename Directed, typename Vertex>
- struct edge_base
- {
- inline edge_base() {}
- inline edge_base(Vertex s, Vertex d)
- : m_source(s), m_target(d) { }
- Vertex m_source;
- Vertex m_target;
- };
-
- template <typename Directed, typename Vertex>
- class edge_desc_impl : public edge_base<Directed,Vertex> {
- typedef edge_desc_impl self;
- typedef edge_base<Directed,Vertex> Base;
- public:
- typedef void property_type;
-
- inline edge_desc_impl() : m_eproperty(0) {}
-
- inline edge_desc_impl(Vertex s, Vertex d, const property_type* eplug)
- : Base(s,d), m_eproperty(const_cast<property_type*>(eplug)) { }
-
- property_type* get_property() { return m_eproperty; }
- const property_type* get_property() const { return m_eproperty; }
-
- // protected:
- property_type* m_eproperty;
- };
-
- template <class D, class V>
- inline bool
- operator==(const detail::edge_desc_impl<D,V>& a,
- const detail::edge_desc_impl<D,V>& b)
- {
- return a.get_property() == b.get_property();
- }
- template <class D, class V>
- inline bool
- operator!=(const detail::edge_desc_impl<D,V>& a,
- const detail::edge_desc_impl<D,V>& b)
- {
- return ! (a.get_property() == b.get_property());
- }
-
- } //namespace detail
-
-} // namespace boost
-
-namespace std {
-
-#if __GNUC__ < 3
- template <class D, class V>
- std::ostream&
- operator<<(std::ostream& os, const boost::detail::edge_desc_impl<D,V>& e)
- {
- return os << "(" << e.m_source << "," << e.m_target << ")";
- }
-#else
- template <class Char, class Traits, class D, class V>
- std::basic_ostream<Char, Traits>&
- operator<<(std::basic_ostream<Char, Traits>& os,
- const boost::detail::edge_desc_impl<D,V>& e)
- {
- return os << "(" << e.m_source << "," << e.m_target << ")";
- }
-#endif
-
-}
-
-
-#endif // BOOST_GRAPH_DETAIL_DETAIL_EDGE_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_INCIDENCE_ITERATOR_HPP
-#define BOOST_GRAPH_DETAIL_INCIDENCE_ITERATOR_HPP
-
-#include <utility>
-#include <iterator>
-
-// OBSOLETE
-
-namespace boost {
-
- namespace detail {
- // EdgeDir tags
- struct in_edge_tag { };
- struct out_edge_tag { };
-
- template <class Vertex, class Edge, class Iterator1D, class EdgeDir>
- struct bidir_incidence_iterator {
- typedef bidir_incidence_iterator self;
- typedef Edge edge_type;
- typedef typename Edge::property_type EdgeProperty;
- public:
- typedef int difference_type;
- typedef std::forward_iterator_tag iterator_category;
- typedef edge_type reference;
- typedef edge_type value_type;
- typedef value_type* pointer;
- inline bidir_incidence_iterator() {}
- inline bidir_incidence_iterator(Iterator1D ii, Vertex src)
- : i(ii), _src(src) { }
-
- inline self& operator++() { ++i; return *this; }
- inline self operator++(int) { self tmp = *this; ++(*this); return tmp; }
-
- inline reference operator*() const {
- return deref_helper(EdgeDir());
- }
- inline self* operator->() { return this; }
-
- Iterator1D& iter() { return i; }
- const Iterator1D& iter() const { return i; }
-
- Iterator1D i;
- Vertex _src;
- protected:
- inline reference deref_helper(out_edge_tag) const {
- return edge_type( _src, (*i).get_target(), &(*i).get_property() );
- }
- inline reference deref_helper(in_edge_tag) const {
- return edge_type((*i).get_target(), _src, &(*i).get_property() );
- }
- };
-
- template <class V, class E, class Iter, class Dir>
- inline bool operator==(const bidir_incidence_iterator<V,E,Iter,Dir>& x,
- const bidir_incidence_iterator<V,E,Iter,Dir>& y)
- {
- return x.i == y.i;
- }
- template <class V, class E, class Iter, class Dir>
- inline bool operator!=(const bidir_incidence_iterator<V,E,Iter,Dir>& x,
- const bidir_incidence_iterator<V,E,Iter,Dir>& y)
- {
- return x.i != y.i;
- }
-
-
- }
-}
-#endif
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_INCREMENTAL_COMPONENTS_HPP
-#define BOOST_GRAPH_DETAIL_INCREMENTAL_COMPONENTS_HPP
-
-#include <boost/operators.hpp>
-#include <boost/pending/disjoint_sets.hpp>
-
-namespace boost {
-
- namespace detail {
-
- //=========================================================================
- // Implementation detail of incremental_components
-
-
- //-------------------------------------------------------------------------
- // Helper functions for the component_index class
-
- // Record the representative vertices in the header array.
- // Representative vertices now point to the component number.
-
- template <class Parent, class OutputIterator, class Integer>
- inline void
- build_components_header(Parent p,
- OutputIterator header,
- Integer num_nodes)
- {
- Parent component = p;
- Integer component_num = 0;
- for (Integer v = 0; v != num_nodes; ++v)
- if (p[v] == v) {
- *header++ = v;
- component[v] = component_num++;
- }
- }
-
-
- // Pushes x onto the front of the list. The list is represented in
- // an array.
- template <class Next, class T, class V>
- inline void array_push_front(Next next, T& head, V x)
- {
- T tmp = head;
- head = x;
- next[x] = tmp;
- }
-
-
- // Create a linked list of the vertices in each component
- // by reusing the representative array.
- template <class Parent1, class Parent2,
- class Integer>
- void
- link_components(Parent1 component, Parent2 header,
- Integer num_nodes, Integer num_components)
- {
- // Make the non-representative vertices point to their component
- Parent1 representative = component;
- for (Integer v = 0; v != num_nodes; ++v)
- if (component[v] >= num_components
- || header[component[v]] != v)
- component[v] = component[representative[v]];
-
- // initialize the "head" of the lists to "NULL"
- std::fill_n(header, num_components, num_nodes);
-
- // Add each vertex to the linked list for its component
- Parent1 next = component;
- for (Integer k = 0; k != num_nodes; ++k)
- array_push_front(next, header[component[k]], k);
- }
-
-
-
- template <class IndexContainer, class HeaderContainer>
- void
- construct_component_index(IndexContainer& index, HeaderContainer& header)
- {
- typedef typename IndexContainer::value_type Integer;
- build_components_header(index.begin(),
- std::back_inserter(header),
- Integer(index.end() - index.begin()));
-
- link_components(index.begin(), header.begin(),
- Integer(index.end() - index.begin()),
- Integer(header.end() - header.begin()));
- }
-
-
-
- template <class IndexIterator, class Integer, class Distance>
- class component_iterator
- : boost::forward_iterator_helper<
- component_iterator<IndexIterator,Integer,Distance>,
- Integer, Distance,Integer*, Integer&>
- {
- public:
- typedef component_iterator self;
-
- IndexIterator next;
- Integer node;
-
- typedef std::forward_iterator_tag iterator_category;
- typedef Integer value_type;
- typedef Integer& reference;
- typedef Integer* pointer;
- typedef Distance difference_type;
-
- component_iterator() {}
- component_iterator(IndexIterator x, Integer i)
- : next(x), node(i) {}
- Integer operator*() const {
- return node;
- }
- self& operator++() {
- node = next[node];
- return *this;
- }
- };
-
- template <class IndexIterator, class Integer, class Distance>
- inline bool
- operator==(const component_iterator<IndexIterator, Integer, Distance>& x,
- const component_iterator<IndexIterator, Integer, Distance>& y)
- {
- return x.node == y.node;
- }
-
- } // namespace detail
-
-} // namespace detail
-
-#endif // BOOST_GRAPH_DETAIL_INCREMENTAL_COMPONENTS_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_IS_SAME_HPP
-#define BOOST_GRAPH_DETAIL_IS_SAME_HPP
-
-#include <boost/pending/ct_if.hpp>
-
-namespace boost {
- struct false_tag;
- struct true_tag;
-
- namespace graph_detail {
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class U, class V>
- struct is_same {
- typedef boost::false_tag is_same_tag;
- };
- template <class U>
- struct is_same<U, U> {
- typedef boost::true_tag is_same_tag;
- };
-#else
- template <class U, class V>
- struct is_same {
- enum { Unum = U::num, Vnum = V::num };
- typedef typename boost::ct_if< (Unum == Vnum),
- boost::true_tag, boost::false_tag>::type is_same_tag;
- };
-#endif
- } // namespace graph_detail
-} // namespace boost
-
-#endif
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_LIST_BASE_HPP
-#define BOOST_LIST_BASE_HPP
-
-#include <boost/iterator_adaptors.hpp>
-
-// Perhaps this should go through formal review, and move to <boost/>.
-
-/*
- An alternate interface idea:
- Extend the std::list functionality by creating remove/insert
- functions that do not require the container object!
- */
-
-namespace boost {
- namespace detail {
-
- //=========================================================================
- // Linked-List Generic Implementation Functions
-
- template <class Node, class Next>
- inline Node
- slist_insert_after(Node pos, Node x,
- Next next)
- {
- next(x) = next(pos);
- next(pos) = x;
- return x;
- }
-
- // return next(pos) or next(next(pos)) ?
- template <class Node, class Next>
- inline Node
- slist_remove_after(Node pos,
- Next next)
- {
- Node n = next(pos);
- next(pos) = next(n);
- return n;
- }
-
- template <class Node, class Next>
- inline Node
- slist_remove_range(Node before_first, Node last,
- Next next)
- {
- next(before_first) = last;
- return last;
- }
-
- template <class Node, class Next>
- inline Node
- slist_previous(Node head, Node x, Node nil,
- Next next)
- {
- while (head != nil && next(head) != x)
- head = next(head);
- return head;
- }
-
- template<class Node, class Next>
- inline void
- slist_splice_after(Node pos, Node before_first, Node before_last,
- Next next)
- {
- if (pos != before_first && pos != before_last) {
- Node first = next(before_first);
- Node after = next(pos);
- next(before_first) = next(before_last);
- next(pos) = first;
- next(before_last) = after;
- }
- }
-
- template <class Node, class Next>
- inline Node
- slist_reverse(Node node, Node nil,
- Next next)
- {
- Node result = node;
- node = next(node);
- next(result) = nil;
- while(node) {
- Node next = next(node);
- next(node) = result;
- result = node;
- node = next;
- }
- return result;
- }
-
- template <class Node, class Next>
- inline std::size_t
- slist_size(Node head, Node nil,
- Next next)
- {
- std::size_t s = 0;
- for ( ; head != nil; head = next(head))
- ++s;
- return s;
- }
-
- template <class Next, class Data>
- class slist_iterator_policies
- {
- public:
- explicit slist_iterator_policies(const Next& n, const Data& d)
- : m_next(n), m_data(d) { }
-
- template <class Reference, class Node>
- Reference dereference(type<Reference>, const Node& x) const
- { return m_data(x); }
-
- template <class Node>
- void increment(Node& x) const
- { x = m_next(x); }
-
- template <class Node>
- bool equal(Node& x, Node& y) const
- { return x == y; }
-
- protected:
- Next m_next;
- Data m_data;
- };
-
- //===========================================================================
- // Doubly-Linked List Generic Implementation Functions
-
- template <class Node, class Next, class Prev>
- inline void
- dlist_insert_before(Node pos, Node x,
- Next next, Prev prev)
- {
- next(x) = pos;
- prev(x) = prev(pos);
- next(prev(pos)) = x;
- prev(pos) = x;
- }
-
- template <class Node, class Next, class Prev>
- void
- dlist_remove(Node pos,
- Next next, Prev prev)
- {
- Node next_node = next(pos);
- Node prev_node = prev(pos);
- next(prev_node) = next_node;
- prev(next_node) = prev_node;
- }
-
- // This deletes every node in the list except the
- // sentinel node.
- template <class Node, class Delete>
- inline void
- dlist_clear(Node sentinel, Delete del)
- {
- Node i, tmp;
- i = next(sentinel);
- while (i != sentinel) {
- tmp = i;
- i = next(i);
- del(tmp);
- }
- }
-
- template <class Node>
- inline bool
- dlist_empty(Node dummy)
- {
- return next(dummy) == dummy;
- }
-
- template <class Node, class Next, class Prev>
- void
- dlist_transfer(Node pos, Node first, Node last,
- Next next, Prev prev)
- {
- if (pos != last) {
- // Remove [first,last) from its old position
- next(prev(last)) = pos;
- next(prev(first)) = last;
- next(prev(pos)) = first;
-
- // Splice [first,last) into its new position
- Node tmp = prev(pos);
- prev(pos) = prev(last);
- prev(last) = prev(first);
- prev(first) = tmp;
- }
- }
-
- template <class Next, class Prev, class Data>
- class dlist_iterator_policies
- : public slist_iterator_policies<Next, Data>
- {
- typedef slist_iterator_policies<Next, Data> Base;
- public:
- template <class Node>
- void decrement(Node& x) const
- { x = m_prev(x); }
-
- dlist_iterator_policies(Next n, Prev p, Data d)
- : Base(n,d), m_prev(p) { }
- protected:
- Prev m_prev;
- };
-
- } // namespace detail
-} // namespace boost
-
-#endif // BOOST_LIST_BASE_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001.
-// Distributed under the 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_HPP
-#define BOOST_PERMUTATION_HPP
-
-#include <vector>
-#include <memory>
-#include <functional>
-#include <algorithm>
-#include <boost/graph/detail/shadow_iterator.hpp>
-
-namespace boost {
-
-template <class Iter1, class Iter2>
-void permute_serial(Iter1 permuter, Iter1 last, Iter2 result)
-{
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- typedef std::ptrdiff_t D:
-#else
- typedef typename std::iterator_traits<Iter1>::difference_type D;
-#endif
-
- D n = 0;
- while (permuter != last) {
- std::swap(result[n], result[*permuter]);
- ++n;
- ++permuter;
- }
-}
-
-template <class InIter, class RandIterP, class RandIterR>
-void permute_copy(InIter first, InIter last, RandIterP p, RandIterR result)
-{
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- typedef std::ptrdiff_t i = 0;
-#else
- typename std::iterator_traits<RandIterP>::difference_type i = 0;
-#endif
- for (; first != last; ++first, ++i)
- result[p[i]] = *first;
-}
-
-namespace detail {
-
-template <class RandIter, class RandIterPerm, class D, class T>
-void permute_helper(RandIter first, RandIter last, RandIterPerm p, D, T)
-{
- D i = 0, pi, n = last - first, cycle_start;
- T tmp;
- std::vector<int> visited(n, false);
-
- while (i != n) { // continue until all elements have been processed
- cycle_start = i;
- tmp = first[i];
- do { // walk around a cycle
- pi = p[i];
- visited[pi] = true;
- std::swap(tmp, first[pi]);
- i = pi;
- } while (i != cycle_start);
-
- // find the next cycle
- for (i = 0; i < n; ++i)
- if (visited[i] == false)
- break;
- }
-}
-
-} // namespace detail
-
-template <class RandIter, class RandIterPerm>
-void permute(RandIter first, RandIter last, RandIterPerm p)
-{
- detail::permute_helper(first, last, p, last - first, *first);
-}
-
-
-// Knuth 1.3.3, Vol. 1 p 176
-// modified for zero-based arrays
-// time complexity?
-//
-// WARNING: T must be a signed integer!
-template <class PermIter>
-void invert_permutation(PermIter X, PermIter Xend)
-{
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- typedef std::ptrdiff_t T:
-#else
- typedef typename std::iterator_traits<PermIter>::value_type T;
-#endif
- T n = Xend - X;
- T m = n;
- T j = -1;
-
- while (m > 0) {
- T i = X[m-1] + 1;
- if (i > 0) {
- do {
- X[m-1] = j - 1;
- j = -m;
- m = i;
- i = X[m-1] + 1;
- } while (i > 0);
- i = j;
- }
- X[m-1] = -i - 1;
- --m;
- }
-}
-
-// Takes a "normal" permutation array (and its inverse), and turns it
-// into a BLAS-style permutation array (which can be thought of as a
-// serialized permutation).
-template <class Iter1, class Iter2, class Iter3>
-inline void serialize_permutation(Iter1 q, Iter1 q_end, Iter2 q_inv, Iter3 p)
-{
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- typedef std::ptrdiff_t P1;
- typedef std::ptrdiff_t P2;
- typedef std::ptrdiff_t D;
-#else
- typedef typename std::iterator_traits<Iter1>::value_type P1;
- typedef typename std::iterator_traits<Iter2>::value_type P2;
- typedef typename std::iterator_traits<Iter1>::difference_type D;
-#endif
- D n = q_end - q;
- for (D i = 0; i < n; ++i) {
- P1 qi = q[i];
- P2 qii = q_inv[i];
- *p++ = qii;
- std::swap(q[i], q[qii]);
- std::swap(q_inv[i], q_inv[qi]);
- }
-}
-
-// Not used anymore, leaving it here for future reference.
-template <typename Iter, typename Compare>
-void merge_sort(Iter first, Iter last, Compare cmp)
-{
- if (first + 1 < last) {
- Iter mid = first + (last - first)/2;
- merge_sort(first, mid, cmp);
- merge_sort(mid, last, cmp);
- std::inplace_merge(first, mid, last, cmp);
- }
-}
-
-
-// time: N log N + 3N + ?
-// space: 2N
-template <class Iter, class IterP, class Cmp, class Alloc>
-inline void sortp(Iter first, Iter last, IterP p, Cmp cmp, Alloc alloc)
-{
- typedef typename std::iterator_traits<IterP>::value_type P;
- typedef typename std::iterator_traits<IterP>::difference_type D;
- D n = last - first;
- std::vector<P, Alloc> q(n);
- for (D i = 0; i < n; ++i)
- q[i] = i;
- std::sort(make_shadow_iter(first, q.begin()),
- make_shadow_iter(last, q.end()),
- shadow_cmp<Cmp>(cmp));
- invert_permutation(q.begin(), q.end());
- std::copy(q.begin(), q.end(), p);
-}
-
-template <class Iter, class IterP, class Cmp>
-inline void sortp(Iter first, Iter last, IterP p, Cmp cmp)
-{
- typedef typename std::iterator_traits<IterP>::value_type P;
- sortp(first, last, p, cmp, std::allocator<P>());
-}
-
-template <class Iter, class IterP>
-inline void sortp(Iter first, Iter last, IterP p)
-{
- typedef typename std::iterator_traits<Iter>::value_type T;
- typedef typename std::iterator_traits<IterP>::value_type P;
- sortp(first, last, p, std::less<T>(), std::allocator<P>());
-}
-
-template <class Iter, class IterP, class Cmp, class Alloc>
-inline void sortv(Iter first, Iter last, IterP p, Cmp cmp, Alloc alloc)
-{
- typedef typename std::iterator_traits<IterP>::value_type P;
- typedef typename std::iterator_traits<IterP>::difference_type D;
- D n = last - first;
- std::vector<P, Alloc> q(n), q_inv(n);
- for (D i = 0; i < n; ++i)
- q_inv[i] = i;
- std::sort(make_shadow_iter(first, q_inv.begin()),
- make_shadow_iter(last, q_inv.end()),
- shadow_cmp<Cmp>(cmp));
- std::copy(q_inv, q_inv.end(), q.begin());
- invert_permutation(q.begin(), q.end());
- serialize_permutation(q.begin(), q.end(), q_inv.end(), p);
-}
-
-
-} // namespace boost
-
-#endif // BOOST_PERMUTATION_HPP
+++ /dev/null
-// Copyright 2004-5 Trustees of Indiana University
-
-// 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)
-
-//
-// read_graphviz_spirit.hpp -
-// Initialize a model of the BGL's MutableGraph concept and an associated
-// collection of property maps using a graph expressed in the GraphViz
-// DOT Language.
-//
-// Based on the grammar found at:
-// http://www.graphviz.org/cvs/doc/info/lang.html
-//
-// See documentation for this code at:
-// http://www.boost.org/libs/graph/doc/read-graphviz.html
-//
-
-// Author: Ronald Garcia
-//
-
-#ifndef BOOST_READ_GRAPHVIZ_SPIRIT_HPP
-#define BOOST_READ_GRAPHVIZ_SPIRIT_HPP
-
-// Phoenix/Spirit set these limits to 3, but I need more.
-#define PHOENIX_LIMIT 6
-#define BOOST_SPIRIT_CLOSURE_LIMIT 6
-
-
-#include <boost/spirit/iterator/multi_pass.hpp>
-#include <boost/spirit/core.hpp>
-#include <boost/spirit/utility/confix.hpp>
-#include <boost/spirit/utility/distinct.hpp>
-#include <boost/spirit/utility/lists.hpp>
-#include <boost/spirit/utility/escape_char.hpp>
-#include <boost/spirit/attribute.hpp>
-#include <boost/spirit/dynamic.hpp>
-#include <boost/spirit/actor.hpp>
-#include <boost/spirit/phoenix.hpp>
-#include <boost/spirit/phoenix/binders.hpp>
-#include <boost/ref.hpp>
-#include <boost/function/function2.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/dynamic_property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/detail/workaround.hpp>
-#include <algorithm>
-#include <exception> // for std::exception
-#include <string>
-#include <vector>
-#include <set>
-#include <utility>
-#include <map>
-#include <boost/graph/graphviz.hpp>
-
-namespace phoenix {
-// Workaround: std::map::operator[] uses a different return type than all
-// other standard containers. Phoenix doesn't account for that.
-template <typename TK, typename T0, typename T1>
-struct binary_operator<index_op, std::map<TK,T0>, T1>
-{
- typedef typename std::map<TK,T0>::mapped_type& result_type;
- static result_type eval(std::map<TK,T0>& container, T1 const& index)
- { return container[index]; }
-};
-} // namespace phoenix
-
-namespace boost {
-namespace detail {
-namespace graph {
-
-using namespace std;
-using namespace boost;
-using namespace boost::spirit;
-using namespace phoenix;
-
-/////////////////////////////////////////////////////////////////////////////
-// Application-specific type definitions
-/////////////////////////////////////////////////////////////////////////////
-
-typedef std::set<edge_t> edges_t;
-typedef std::set<node_t> nodes_t;
-typedef std::set<id_t> ids_t;
-typedef std::map<edge_t,ids_t> edge_map_t;
-typedef std::map<node_t,ids_t> node_map_t;
-typedef std::map<id_t,id_t> props_t;
-typedef std::map<id_t,props_t> subgraph_props_t;
-typedef boost::function2<void, id_t const&, id_t const&> actor_t;
-typedef std::vector<edge_t> edge_stack_t;
-typedef std::map<id_t,nodes_t> subgraph_nodes_t;
-typedef std::map<id_t,edges_t> subgraph_edges_t;
-
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Stack frames used by semantic actions
-/////////////////////////////////////////////////////////////////////////////
-struct id_closure : boost::spirit::closure<id_closure, node_t> {
- member1 name;
-};
-
-
-struct node_id_closure : boost::spirit::closure<node_id_closure, node_t> {
- member1 name;
-};
-
-struct attr_list_closure : boost::spirit::closure<attr_list_closure, actor_t> {
- member1 prop_actor;
-};
-
-struct property_closure : boost::spirit::closure<property_closure, id_t, id_t> {
- member1 key;
- member2 value;
-};
-
-struct data_stmt_closure : boost::spirit::closure<data_stmt_closure,
- nodes_t,nodes_t,edge_stack_t,bool,node_t> {
- member1 sources;
- member2 dests;
- member3 edge_stack;
- member4 saw_node;
- member5 active_node;
-};
-
-struct subgraph_closure : boost::spirit::closure<subgraph_closure,
- nodes_t, edges_t, node_t> {
- member1 nodes;
- member2 edges;
- member3 name;
-};
-
-/////////////////////////////////////////////////////////////////////////////
-// Grammar and Actions for the DOT Language
-/////////////////////////////////////////////////////////////////////////////
-
-// Grammar for a dot file.
-struct dot_grammar : public grammar<dot_grammar> {
- mutate_graph& graph_;
- explicit dot_grammar(mutate_graph& graph) : graph_(graph) { }
-
- template <class ScannerT>
- struct definition {
-
- definition(dot_grammar const& self) : self(self), subgraph_depth(0),
- keyword_p("0-9a-zA-Z_") {
-
-
- // RG - Future Work
- // - Handle multi-line strings using \ line continuation
- // - Make keywords case insensitive
-
- ID
- = ( lexeme_d[((alpha_p | ch_p('_')) >> *(alnum_p | ch_p('_')))]
- | real_p
- | confix_p('"', *c_escape_ch_p, '"')
- | comment_nest_p('<', '>')
- )[ID.name = construct_<std::string>(arg1,arg2)]
- ;
-
- a_list
- = list_p( ID[(a_list.key = arg1),
- (a_list.value = "true")
- ]
- >> !( ch_p('=')
- >> ID[a_list.value = arg1])
- [phoenix::bind(&definition::call_prop_actor)
- (var(*this),a_list.key,a_list.value)],ch_p(','));
-
- attr_list = +(ch_p('[') >> !a_list >> ch_p(']'));
-
- // RG - disregard port id's for now.
- port_location
- = (ch_p(':') >> ID)
- | (ch_p(':') >> ch_p('(') >> ID >> ch_p(',') >> ID >> ch_p(')'))
- ;
-
- port_angle = ch_p('@') >> ID;
-
- port
- = port_location >> (!port_angle)
- | port_angle >> (!port_location);
-
-
- node_id
- = ( ID[node_id.name = arg1] >> (!port) )
- [phoenix::bind(&definition::memoize_node)(var(*this))];
-
- attr_stmt
- = (as_lower_d[keyword_p("graph")]
- >> attr_list(actor_t(phoenix::bind(&definition::default_graph_prop)
- (var(*this),arg1,arg2))))
- | (as_lower_d[keyword_p("node")]
- >> attr_list(actor_t(phoenix::bind(&definition::default_node_prop)
- (var(*this),arg1,arg2))))
- | (as_lower_d[keyword_p("edge")]
- >> attr_list(actor_t(phoenix::bind(&definition::default_edge_prop)
- (var(*this),arg1,arg2))))
- ;
-
- // edge_head is set depending on the graph type (directed/undirected)
- edgeop = ch_p('-') >> ch_p(boost::ref(edge_head));
-
- edgeRHS
- = +( edgeop[(data_stmt.sources = data_stmt.dests),
- (data_stmt.dests = construct_<nodes_t>())]
- >> ( subgraph[data_stmt.dests = arg1]
- | node_id[phoenix::bind(&definition::insert_node)
- (var(*this),data_stmt.dests,arg1)]
- )
- [phoenix::bind(&definition::activate_edge)
- (var(*this),data_stmt.sources,data_stmt.dests,
- var(edges), var(default_edge_props))]
- );
-
-
- // To avoid backtracking, edge, node, and subgraph statements are
- // processed as one nonterminal.
- data_stmt
- = ( subgraph[(data_stmt.dests = arg1),// will get moved in rhs
- (data_stmt.saw_node = false)]
- | node_id[(phoenix::bind(&definition::insert_node)
- (var(*this),data_stmt.dests,arg1)),
- (data_stmt.saw_node = true),
-#ifdef BOOST_GRAPH_DEBUG
- (std::cout << val("AcTive Node: ") << arg1 << "\n"),
-#endif // BOOST_GRAPH_DEBUG
- (data_stmt.active_node = arg1)]
- ) >> if_p(edgeRHS)[
- !attr_list(
- actor_t(phoenix::bind(&definition::edge_prop)
- (var(*this),arg1,arg2)))
- ].else_p[
- if_p(data_stmt.saw_node)[
- !attr_list(
- actor_t(phoenix::bind(&definition::node_prop)
- (var(*this),arg1,arg2)))
- ] // otherwise it's a subgraph, nothing more to do.
- ];
-
-
- stmt
- = (ID >> ch_p('=') >> ID) // Graph property -- ignore.
- | attr_stmt
- | data_stmt
- ;
-
- stmt_list = *( stmt >> !ch_p(';') );
-
- subgraph
- = !( as_lower_d[keyword_p("subgraph")]
- >> (!ID[(subgraph.name = arg1),
- (subgraph.nodes = (var(subgraph_nodes))[arg1]),
- (subgraph.edges = (var(subgraph_edges))[arg1])])
- )
- >> ch_p('{')[++var(subgraph_depth)]
- >> stmt_list
- >> ch_p('}')[--var(subgraph_depth)]
- [(var(subgraph_nodes))[subgraph.name] = subgraph.nodes]
- [(var(subgraph_edges))[subgraph.name] = subgraph.edges]
-
- | as_lower_d[keyword_p("subgraph")]
- >> ID[(subgraph.nodes = (var(subgraph_nodes))[arg1]),
- (subgraph.edges = (var(subgraph_edges))[arg1])]
- ;
-
- the_grammar
- = (!as_lower_d[keyword_p("strict")])
- >> ( as_lower_d[keyword_p("graph")][
- (var(edge_head) = '-'),
- (phoenix::bind(&definition::check_undirected)(var(*this)))]
- | as_lower_d[keyword_p("digraph")][
- (var(edge_head) = '>'),
- (phoenix::bind(&definition::check_directed)(var(*this)))]
- )
- >> (!ID) >> ch_p('{') >> stmt_list >> ch_p('}');
-
- } // definition()
-
- typedef rule<ScannerT> rule_t;
-
- rule_t const& start() const { return the_grammar; }
-
-
- //
- // Semantic actions
- //
-
- void check_undirected() {
- if(self.graph_.is_directed())
- throw boost::undirected_graph_error();
- }
-
- void check_directed() {
- if(!self.graph_.is_directed())
- throw boost::directed_graph_error();
- }
-
- void memoize_node() {
- id_t const& node = node_id.name();
- props_t& node_props = default_node_props;
-
- if(nodes.find(node) == nodes.end()) {
- nodes.insert(node);
- self.graph_.do_add_vertex(node);
-
- node_map.insert(std::make_pair(node,ids_t()));
-
-#ifdef BOOST_GRAPH_DEBUG
- std::cout << "Add new node " << node << std::endl;
-#endif // BOOST_GRAPH_DEBUG
- // Set the default properties for this edge
- // RG: Here I would actually set the properties
- for(props_t::iterator i = node_props.begin();
- i != node_props.end(); ++i) {
- set_node_property(node,i->first,i->second);
- }
- if(subgraph_depth > 0) {
- subgraph.nodes().insert(node);
- // Set the subgraph's default properties as well
- props_t& props = subgraph_node_props[subgraph.name()];
- for(props_t::iterator i = props.begin(); i != props.end(); ++i) {
- set_node_property(node,i->first,i->second);
- }
- }
- } else {
-#ifdef BOOST_GRAPH_DEBUG
- std::cout << "See node " << node << std::endl;
-#endif // BOOST_GRAPH_DEBUG
- }
- }
-
- void activate_edge(nodes_t& sources, nodes_t& dests, edges_t& edges,
- props_t& edge_props) {
- edge_stack_t& edge_stack = data_stmt.edge_stack();
- for(nodes_t::iterator i = sources.begin(); i != sources.end(); ++i) {
- for(nodes_t::iterator j = dests.begin(); j != dests.end(); ++j) {
- // Create the edge and and push onto the edge stack.
-#ifdef BOOST_GRAPH_DEBUG
- std::cout << "Edge " << *i << " to " << *j << std::endl;
-#endif // BOOST_GRAPH_DEBUG
-
- edge_t edge = edge_t::new_edge();
- edge_stack.push_back(edge);
- edges.insert(edge);
- edge_map.insert(std::make_pair(edge,ids_t()));
-
- // Add the real edge.
- self.graph_.do_add_edge(edge, *i, *j);
-
- // Set the default properties for this edge
- for(props_t::iterator k = edge_props.begin();
- k != edge_props.end(); ++k) {
- set_edge_property(edge,k->first,k->second);
- }
- if(subgraph_depth > 0) {
- subgraph.edges().insert(edge);
- // Set the subgraph's default properties as well
- props_t& props = subgraph_edge_props[subgraph.name()];
- for(props_t::iterator k = props.begin(); k != props.end(); ++k) {
- set_edge_property(edge,k->first,k->second);
- }
- }
- }
- }
- }
-
- // node_prop - Assign the property for the current active node.
- void node_prop(id_t const& key, id_t const& value) {
- node_t& active_object = data_stmt.active_node();
- set_node_property(active_object, key, value);
- }
-
- // edge_prop - Assign the property for the current active edges.
- void edge_prop(id_t const& key, id_t const& value) {
- edge_stack_t const& active_edges_ = data_stmt.edge_stack();
- for (edge_stack_t::const_iterator i = active_edges_.begin();
- i != active_edges_.end(); ++i) {
- set_edge_property(*i,key,value);
- }
- }
-
- // default_graph_prop - Just ignore graph properties.
- void default_graph_prop(id_t const&, id_t const&) { }
-
- // default_node_prop - declare default properties for any future new nodes
- void default_node_prop(id_t const& key, id_t const& value) {
- nodes_t& nodes_ =
- subgraph_depth == 0 ? nodes : subgraph.nodes();
- props_t& node_props_ =
- subgraph_depth == 0 ?
- default_node_props :
- subgraph_node_props[subgraph.name()];
-
- // add this to the selected list of default node properties.
- node_props_[key] = value;
- // for each node, set its property to default-constructed value
- // if it hasn't been set already.
- // set the dynamic property map value
- for(nodes_t::iterator i = nodes_.begin(); i != nodes_.end(); ++i)
- if(node_map[*i].find(key) == node_map[*i].end()) {
- set_node_property(*i,key,id_t());
- }
- }
-
- // default_edge_prop - declare default properties for any future new edges
- void default_edge_prop(id_t const& key, id_t const& value) {
- edges_t& edges_ =
- subgraph_depth == 0 ? edges : subgraph.edges();
- props_t& edge_props_ =
- subgraph_depth == 0 ?
- default_edge_props :
- subgraph_edge_props[subgraph.name()];
-
- // add this to the list of default edge properties.
- edge_props_[key] = value;
- // for each edge, set its property to be empty string
- // set the dynamic property map value
- for(edges_t::iterator i = edges_.begin(); i != edges_.end(); ++i)
- if(edge_map[*i].find(key) == edge_map[*i].end())
- set_edge_property(*i,key,id_t());
- }
-
- // helper function
- void insert_node(nodes_t& nodes, id_t const& name) {
- nodes.insert(name);
- }
-
- void call_prop_actor(std::string const& lhs, std::string const& rhs) {
- actor_t& actor = attr_list.prop_actor();
- // If first and last characters of the rhs are double-quotes,
- // remove them.
- if (!rhs.empty() && rhs[0] == '"' && rhs[rhs.size() - 1] == '"')
- actor(lhs, rhs.substr(1, rhs.size()-2));
- else
- actor(lhs,rhs);
- }
-
- void set_node_property(node_t const& node, id_t const& key,
- id_t const& value) {
-
- // Add the property key to the "set" table to avoid default overwrite
- node_map[node].insert(key);
- // Set the user's property map
- self.graph_.set_node_property(key, node, value);
-#ifdef BOOST_GRAPH_DEBUG
- // Tell the world
- std::cout << node << ": " << key << " = " << value << std::endl;
-#endif // BOOST_GRAPH_DEBUG
- }
-
- void set_edge_property(edge_t const& edge, id_t const& key,
- id_t const& value) {
-
- // Add the property key to the "set" table to avoid default overwrite
- edge_map[edge].insert(key);
- // Set the user's property map
- self.graph_.set_edge_property(key, edge, value);
-#ifdef BOOST_GRAPH_DEBUG
- // Tell the world
- std::cout << "(" << edge.first << "," << edge.second << "): "
- << key << " = " << value << std::endl;
-#endif // BOOST_GRAPH_DEBUG
- }
-
- // Variables explicitly initialized
- dot_grammar const& self;
- // if subgraph_depth > 0, then we're processing a subgraph.
- int subgraph_depth;
-
- // Keywords;
- const distinct_parser<> keyword_p;
- //
- // rules that make up the grammar
- //
- rule<ScannerT,id_closure::context_t> ID;
- rule<ScannerT,property_closure::context_t> a_list;
- rule<ScannerT,attr_list_closure::context_t> attr_list;
- rule_t port_location;
- rule_t port_angle;
- rule_t port;
- rule<ScannerT,node_id_closure::context_t> node_id;
- rule_t attr_stmt;
- rule<ScannerT,data_stmt_closure::context_t> data_stmt;
- rule<ScannerT,subgraph_closure::context_t> subgraph;
- rule_t edgeop;
- rule_t edgeRHS;
- rule_t stmt;
- rule_t stmt_list;
- rule_t the_grammar;
-
-
- // The grammar uses edge_head to dynamically set the syntax for edges
- // directed graphs: edge_head = '>', and so edgeop = "->"
- // undirected graphs: edge_head = '-', and so edgeop = "--"
- char edge_head;
-
-
- //
- // Support data structures
- //
-
- nodes_t nodes; // list of node names seen
- edges_t edges; // list of edges seen
- node_map_t node_map; // remember the properties set for each node
- edge_map_t edge_map; // remember the properties set for each edge
-
- subgraph_nodes_t subgraph_nodes; // per-subgraph lists of nodes
- subgraph_edges_t subgraph_edges; // per-subgraph lists of edges
-
- props_t default_node_props; // global default node properties
- props_t default_edge_props; // global default edge properties
- subgraph_props_t subgraph_node_props; // per-subgraph default node properties
- subgraph_props_t subgraph_edge_props; // per-subgraph default edge properties
- }; // struct definition
-}; // struct dot_grammar
-
-
-
-//
-// dot_skipper - GraphViz whitespace and comment skipper
-//
-struct dot_skipper : public grammar<dot_skipper>
-{
- dot_skipper() {}
-
- template <typename ScannerT>
- struct definition
- {
- definition(dot_skipper const& /*self*/) {
- // comment forms
- skip = space_p
- | comment_p("//")
- | comment_p("#")
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
- | confix_p(str_p("/*") ,*anychar_p, str_p("*/"))
-#else
- | confix_p("/*" ,*anychar_p, "*/")
-#endif
- ;
-
-#ifdef BOOST_SPIRIT_DEBUG
- BOOST_SPIRIT_DEBUG_RULE(skip);
-#endif
- }
-
- rule<ScannerT> skip;
- rule<ScannerT> const&
- start() const { return skip; }
- }; // definition
-}; // dot_skipper
-
-} // namespace graph
-} // namespace detail
-
-template <typename MultiPassIterator, typename MutableGraph>
-bool read_graphviz(MultiPassIterator begin, MultiPassIterator end,
- MutableGraph& graph, dynamic_properties& dp,
- std::string const& node_id = "node_id") {
- using namespace boost;
- using namespace boost::spirit;
-
- typedef MultiPassIterator iterator_t;
- typedef skip_parser_iteration_policy< boost::detail::graph::dot_skipper>
- iter_policy_t;
- typedef scanner_policies<iter_policy_t> scanner_policies_t;
- typedef scanner<iterator_t, scanner_policies_t> scanner_t;
-
- detail::graph::mutate_graph_impl<MutableGraph> m_graph(graph, dp, node_id);
-
- boost::detail::graph::dot_grammar p(m_graph);
- boost::detail::graph::dot_skipper skip_p;
-
- iter_policy_t iter_policy(skip_p);
- scanner_policies_t policies(iter_policy);
-
- scanner_t scan(begin, end, policies);
-
- return p.parse(scan);
-}
-
-} // namespace boost
-
-#endif // BOOST_READ_GRAPHVIZ_SPIRIT_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_SELF_AVOIDING_WALK_HPP
-#define BOOST_SELF_AVOIDING_WALK_HPP
-
-/*
- This file defines necessary components for SAW.
-
- mesh language: (defined by myself to clearify what is what)
- A triangle in mesh is called an triangle.
- An edge in mesh is called an line.
- A vertex in mesh is called a point.
-
- A triangular mesh corresponds to a graph in which a vertex is a
- triangle and an edge(u, v) stands for triangle u and triangle v
- share an line.
-
- After this point, a vertex always refers to vertex in graph,
- therefore it is a traingle in mesh.
-
- */
-
-#include <utility>
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-
-#define SAW_SENTINAL -1
-
-namespace boost {
-
- template <class T1, class T2, class T3>
- struct triple {
- T1 first;
- T2 second;
- T3 third;
- triple(const T1& a, const T2& b, const T3& c) : first(a), second(b), third(c) {}
- triple() : first(SAW_SENTINAL), second(SAW_SENTINAL), third(SAW_SENTINAL) {}
- };
-
- typedef triple<int, int, int> Triple;
-
- /* Define a vertex property which has a triangle inside. Triangle is
- represented by a triple. */
- struct triangle_tag { enum { num = 100 }; };
- typedef property<triangle_tag,Triple> triangle_property;
-
- /* Define an edge property with a line. A line is represented by a
- pair. This is not required for SAW though.
- */
- struct line_tag { enum { num = 101 }; };
- template <class T> struct line_property
- : public property<line_tag, std::pair<T,T> > { };
-
- /*Precondition: Points in a Triangle are in order */
- template <class Triangle, class Line>
- inline void get_sharing(const Triangle& a, const Triangle& b, Line& l)
- {
- l.first = SAW_SENTINAL;
- l.second = SAW_SENTINAL;
-
- if ( a.first == b.first ) {
- l.first = a.first;
- if ( a.second == b.second || a.second == b.third )
- l.second = a.second;
- else if ( a.third == b.second || a.third == b.third )
- l.second = a.third;
-
- } else if ( a.first == b.second ) {
- l.first = a.first;
- if ( a.second == b.third )
- l.second = a.second;
- else if ( a.third == b.third )
- l.second = a.third;
-
- } else if ( a.first == b.third ) {
- l.first = a.first;
-
-
- } else if ( a.second == b.first ) {
- l.first = a.second;
- if ( a.third == b.second || a.third == b.third )
- l.second = a.third;
-
- } else if ( a.second == b.second ) {
- l.first = a.second;
- if ( a.third == b.third )
- l.second = a.third;
-
- } else if ( a.second == b.third ) {
- l.first = a.second;
-
-
- } else if ( a.third == b.first
- || a.third == b.second
- || a.third == b.third )
- l.first = a.third;
-
- /*Make it in order*/
- if ( l.first > l.second ) {
- typename Line::first_type i = l.first;
- l.first = l.second;
- l.second = i;
- }
-
- }
-
- template <class TriangleDecorator, class Vertex, class Line>
- struct get_vertex_sharing {
- typedef std::pair<Vertex, Line> Pair;
- get_vertex_sharing(const TriangleDecorator& _td) : td(_td) {}
- inline Line operator()(const Vertex& u, const Vertex& v) const {
- Line l;
- get_sharing(td[u], td[v], l);
- return l;
- }
- inline Line operator()(const Pair& u, const Vertex& v) const {
- Line l;
- get_sharing(td[u.first], td[v], l);
- return l;
- }
- inline Line operator()(const Pair& u, const Pair& v) const {
- Line l;
- get_sharing(td[u.first], td[v.first], l);
- return l;
- }
- TriangleDecorator td;
- };
-
- /* HList has to be a handle of data holder so that pass-by-value is
- * in right logic.
- *
- * The element of HList is a pair of vertex and line. (remember a
- * line is a pair of two ints.). That indicates the walk w from
- * current vertex is across line. (If the first of line is -1, it is
- * a point though.
- */
- template < class TriangleDecorator, class HList, class IteratorD>
- class SAW_visitor
- : public bfs_visitor<>, public dfs_visitor<>
- {
- typedef typename boost::property_traits<IteratorD>::value_type iter;
- /*use boost shared_ptr*/
- typedef typename HList::element_type::value_type::second_type Line;
- public:
-
- typedef tree_edge_tag category;
-
- inline SAW_visitor(TriangleDecorator _td, HList _hlist, IteratorD ia)
- : td(_td), hlist(_hlist), iter_d(ia) {}
-
- template <class Vertex, class Graph>
- inline void start_vertex(Vertex v, Graph&) {
- Line l1;
- l1.first = SAW_SENTINAL;
- l1.second = SAW_SENTINAL;
- hlist->push_front(std::make_pair(v, l1));
- iter_d[v] = hlist->begin();
- }
-
- /*Several symbols:
- w(i): i-th triangle in walk w
- w(i) |- w(i+1): w enter w(i+1) from w(i) over a line
- w(i) ~> w(i+1): w enter w(i+1) from w(i) over a point
- w(i) -> w(i+1): w enter w(i+1) from w(i)
- w(i) ^ w(i+1): the line or point w go over from w(i) to w(i+1)
- */
- template <class Edge, class Graph>
- bool tree_edge(Edge e, Graph& G) {
- using std::make_pair;
- typedef typename boost::graph_traits<Graph>::vertex_descriptor Vertex;
- Vertex tau = target(e, G);
- Vertex i = source(e, G);
-
- get_vertex_sharing<TriangleDecorator, Vertex, Line> get_sharing_line(td);
-
- Line tau_i = get_sharing_line(tau, i);
-
- iter w_end = hlist->end();
-
- iter w_i = iter_d[i];
-
- iter w_i_m_1 = w_i;
- iter w_i_p_1 = w_i;
-
- /*----------------------------------------------------------
- * true false
- *==========================================================
- *a w(i-1) |- w(i) w(i-1) ~> w(i) or w(i-1) is null
- *----------------------------------------------------------
- *b w(i) |- w(i+1) w(i) ~> w(i+1) or no w(i+1) yet
- *----------------------------------------------------------
- */
-
- bool a = false, b = false;
-
- --w_i_m_1;
- ++w_i_p_1;
- b = ( w_i->second.first != SAW_SENTINAL );
-
- if ( w_i_m_1 != w_end ) {
- a = ( w_i_m_1->second.first != SAW_SENTINAL );
- }
-
- if ( a ) {
-
- if ( b ) {
- /*Case 1:
-
- w(i-1) |- w(i) |- w(i+1)
- */
- Line l1 = get_sharing_line(*w_i_m_1, tau);
-
- iter w_i_m_2 = w_i_m_1;
- --w_i_m_2;
-
- bool c = true;
-
- if ( w_i_m_2 != w_end ) {
- c = w_i_m_2->second != l1;
- }
-
- if ( c ) { /* w(i-1) ^ tau != w(i-2) ^ w(i-1) */
- /*extension: w(i-1) -> tau |- w(i) */
- w_i_m_1->second = l1;
- /*insert(pos, const T&) is to insert before pos*/
- iter_d[tau] = hlist->insert(w_i, make_pair(tau, tau_i));
-
- } else { /* w(i-1) ^ tau == w(i-2) ^ w(i-1) */
- /*must be w(i-2) ~> w(i-1) */
-
- bool d = true;
- //need to handle the case when w_i_p_1 is null
- Line l3 = get_sharing_line(*w_i_p_1, tau);
- if ( w_i_p_1 != w_end )
- d = w_i_p_1->second != l3;
- if ( d ) { /* w(i+1) ^ tau != w(i+1) ^ w(i+2) */
- /*extension: w(i) |- tau -> w(i+1) */
- w_i->second = tau_i;
- iter_d[tau] = hlist->insert(w_i_p_1, make_pair(tau, l3));
- } else { /* w(i+1) ^ tau == w(i+1) ^ w(i+2) */
- /*must be w(1+1) ~> w(i+2) */
- Line l5 = get_sharing_line(*w_i_m_1, *w_i_p_1);
- if ( l5 != w_i_p_1->second ) { /* w(i-1) ^ w(i+1) != w(i+1) ^ w(i+2) */
- /*extension: w(i-2) -> tau |- w(i) |- w(i-1) -> w(i+1) */
- w_i_m_2->second = get_sharing_line(*w_i_m_2, tau);
- iter_d[tau] = hlist->insert(w_i, make_pair(tau, tau_i));
- w_i->second = w_i_m_1->second;
- w_i_m_1->second = l5;
- iter_d[w_i_m_1->first] = hlist->insert(w_i_p_1, *w_i_m_1);
- hlist->erase(w_i_m_1);
- } else {
- /*mesh is tetrahedral*/
- // dont know what that means.
- ;
- }
- }
-
- }
- } else {
- /*Case 2:
-
- w(i-1) |- w(i) ~> w(1+1)
- */
-
- if ( w_i->second.second == tau_i.first
- || w_i->second.second == tau_i.second ) { /*w(i) ^ w(i+1) < w(i) ^ tau*/
- /*extension: w(i) |- tau -> w(i+1) */
- w_i->second = tau_i;
- Line l1 = get_sharing_line(*w_i_p_1, tau);
- iter_d[tau] = hlist->insert(w_i_p_1, make_pair(tau, l1));
- } else { /*w(i) ^ w(i+1) !< w(i) ^ tau*/
- Line l1 = get_sharing_line(*w_i_m_1, tau);
- bool c = true;
- iter w_i_m_2 = w_i_m_1;
- --w_i_m_2;
- if ( w_i_m_2 != w_end )
- c = l1 != w_i_m_2->second;
- if (c) { /*w(i-1) ^ tau != w(i-2) ^ w(i-1)*/
- /*extension: w(i-1) -> tau |- w(i)*/
- w_i_m_1->second = l1;
- iter_d[tau] = hlist->insert(w_i, make_pair(tau, tau_i));
- } else { /*w(i-1) ^ tau == w(i-2) ^ w(i-1)*/
- /*must be w(i-2)~>w(i-1)*/
- /*extension: w(i-2) -> tau |- w(i) |- w(i-1) -> w(i+1)*/
- w_i_m_2->second = get_sharing_line(*w_i_m_2, tau);
- iter_d[tau] = hlist->insert(w_i, make_pair(tau, tau_i));
- w_i->second = w_i_m_1->second;
- w_i_m_1->second = get_sharing_line(*w_i_m_1, *w_i_p_1);
- iter_d[w_i_m_1->first] = hlist->insert(w_i_p_1, *w_i_m_1);
- hlist->erase(w_i_m_1);
- }
-
- }
-
- }
-
- } else {
-
- if ( b ) {
- /*Case 3:
-
- w(i-1) ~> w(i) |- w(i+1)
- */
- bool c = false;
- if ( w_i_m_1 != w_end )
- c = ( w_i_m_1->second.second == tau_i.first)
- || ( w_i_m_1->second.second == tau_i.second);
-
- if ( c ) { /*w(i-1) ^ w(i) < w(i) ^ tau*/
- /* extension: w(i-1) -> tau |- w(i) */
- if ( w_i_m_1 != w_end )
- w_i_m_1->second = get_sharing_line(*w_i_m_1, tau);
- iter_d[tau] = hlist->insert(w_i, make_pair(tau, tau_i));
- } else {
- bool d = true;
- Line l1;
- l1.first = SAW_SENTINAL;
- l1.second = SAW_SENTINAL;
- if ( w_i_p_1 != w_end ) {
- l1 = get_sharing_line(*w_i_p_1, tau);
- d = l1 != w_i_p_1->second;
- }
- if (d) { /*w(i+1) ^ tau != w(i+1) ^ w(i+2)*/
- /*extension: w(i) |- tau -> w(i+1) */
- w_i->second = tau_i;
- iter_d[tau] = hlist->insert(w_i_p_1, make_pair(tau, l1));
- } else {
- /*must be w(i+1) ~> w(i+2)*/
- /*extension: w(i-1) -> w(i+1) |- w(i) |- tau -> w(i+2) */
- iter w_i_p_2 = w_i_p_1;
- ++w_i_p_2;
-
- w_i_p_1->second = w_i->second;
- iter_d[i] = hlist->insert(w_i_p_2, make_pair(i, tau_i));
- hlist->erase(w_i);
- Line l2 = get_sharing_line(*w_i_p_2, tau);
- iter_d[tau] = hlist->insert(w_i_p_2, make_pair(tau, l2));
- }
- }
-
- } else {
- /*Case 4:
-
- w(i-1) ~> w(i) ~> w(i+1)
-
- */
- bool c = false;
- if ( w_i_m_1 != w_end ) {
- c = (w_i_m_1->second.second == tau_i.first)
- || (w_i_m_1->second.second == tau_i.second);
- }
- if ( c ) { /*w(i-1) ^ w(i) < w(i) ^ tau */
- /*extension: w(i-1) -> tau |- w(i) */
- if ( w_i_m_1 != w_end )
- w_i_m_1->second = get_sharing_line(*w_i_m_1, tau);
- iter_d[tau] = hlist->insert(w_i, make_pair(tau, tau_i));
- } else {
- /*extension: w(i) |- tau -> w(i+1) */
- w_i->second = tau_i;
- Line l1;
- l1.first = SAW_SENTINAL;
- l1.second = SAW_SENTINAL;
- if ( w_i_p_1 != w_end )
- l1 = get_sharing_line(*w_i_p_1, tau);
- iter_d[tau] = hlist->insert(w_i_p_1, make_pair(tau, l1));
- }
- }
-
- }
-
- return true;
- }
-
- protected:
- TriangleDecorator td; /*a decorator for vertex*/
- HList hlist;
- /*This must be a handle of list to record the SAW
- The element type of the list is pair<Vertex, Line>
- */
-
- IteratorD iter_d;
- /*Problem statement: Need a fast access to w for triangle i.
- *Possible solution: mantain an array to record.
- iter_d[i] will return an iterator
- which points to w(i), where i is a vertex
- representing triangle i.
- */
- };
-
- template <class Triangle, class HList, class Iterator>
- inline
- SAW_visitor<Triangle, HList, Iterator>
- visit_SAW(Triangle t, HList hl, Iterator i) {
- return SAW_visitor<Triangle, HList, Iterator>(t, hl, i);
- }
-
- template <class Tri, class HList, class Iter>
- inline
- SAW_visitor< random_access_iterator_property_map<Tri*,Tri,Tri&>,
- HList, random_access_iterator_property_map<Iter*,Iter,Iter&> >
- visit_SAW_ptr(Tri* t, HList hl, Iter* i) {
- typedef random_access_iterator_property_map<Tri*,Tri,Tri&> TriD;
- typedef random_access_iterator_property_map<Iter*,Iter,Iter&> IterD;
- return SAW_visitor<TriD, HList, IterD>(t, hl, i);
- }
-
- // should also have combo's of pointers, and also const :(
-
-}
-
-#endif /*BOOST_SAW_H*/
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001.
-// Distributed under the 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_SET_ADAPTOR_HPP
-#define BOOST_SET_ADAPTOR_HPP
-
-#include <set>
-
-namespace boost {
-
- template <class K, class C, class A, class T>
- bool set_contains(const std::set<K,C,A>& s, const T& x) {
- return s.find(x) != s.end();
- }
-
- template <class K, class C, class A>
- bool set_equal(const std::set<K,C,A>& x,
- const std::set<K,C,A>& y)
- {
- return x == y;
- }
-
- // Not the same as lexicographical_compare_3way applied to std::set.
- // this is equivalent semantically to bitset::operator<()
- template <class K, class C, class A>
- int set_lex_order(const std::set<K,C,A>& x,
- const std::set<K,C,A>& y)
- {
- typename std::set<K,C,A>::iterator
- xi = x.begin(), yi = y.begin(), xend = x.end(), yend = y.end();
- for (; xi != xend && yi != yend; ++xi, ++yi) {
- if (*xi < *yi)
- return 1;
- else if (*yi < *xi)
- return -1;
- }
- if (xi == xend)
- return (yi == yend) ? 0 : -1;
- else
- return 1;
- }
-
- template <class K, class C, class A>
- void set_clear(std::set<K,C,A>& x) {
- x.clear();
- }
-
- template <class K, class C, class A>
- bool set_empty(const std::set<K,C,A>& x) {
- return x.empty();
- }
-
- template <class K, class C, class A, class T>
- void set_insert(std::set<K,C,A>& x, const T& a) {
- x.insert(a);
- }
-
- template <class K, class C, class A, class T>
- void set_remove(std::set<K,C,A>& x, const T& a) {
- x.erase(a);
- }
-
- template <class K, class C, class A>
- void set_intersect(const std::set<K,C,A>& x,
- const std::set<K,C,A>& y,
- std::set<K,C,A>& z)
- {
- z.clear();
- std::set_intersection(x.begin(), x.end(),
- y.begin(), y.end(),
- std::inserter(z));
- }
-
- template <class K, class C, class A>
- void set_union(const std::set<K,C,A>& x,
- const std::set<K,C,A>& y,
- std::set<K,C,A>& z)
- {
- z.clear();
- std::set_union(x.begin(), x.end(),
- y.begin(), y.end(),
- std::inserter(z));
- }
-
- template <class K, class C, class A>
- void set_difference(const std::set<K,C,A>& x,
- const std::set<K,C,A>& y,
- std::set<K,C,A>& z)
- {
- z.clear();
- std::set_difference(x.begin(), x.end(),
- y.begin(), y.end(),
- std::inserter(z, z.begin()));
- }
-
- template <class K, class C, class A>
- bool set_subset(const std::set<K,C,A>& x,
- const std::set<K,C,A>& y)
- {
- return std::includes(x.begin(), x.end(), y.begin(), y.end());
- }
-
- // Shit, can't implement this without knowing the size of the
- // universe.
- template <class K, class C, class A>
- void set_compliment(const std::set<K,C,A>& x,
- std::set<K,C,A>& z)
- {
- z.clear();
-
- }
-
-} // namespace boost
-
-#endif // BOOST_SET_ADAPTOR_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 2001.
-// Distributed under the 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_SHADOW_ITERATOR_HPP
-#define BOOST_SHADOW_ITERATOR_HPP
-
-#include <boost/iterator_adaptors.hpp>
-#include <boost/operators.hpp>
-
-namespace boost {
-
- namespace detail {
-
- template <class A, class B, class D>
- class shadow_proxy
- : boost::operators< shadow_proxy<A,B,D> >
- {
- typedef shadow_proxy self;
- public:
- inline shadow_proxy(A aa, B bb) : a(aa), b(bb) { }
- inline shadow_proxy(const self& x) : a(x.a), b(x.b) { }
- template <class Self>
- inline shadow_proxy(Self x) : a(x.a), b(x.b) { }
- inline self& operator=(const self& x) { a = x.a; b = x.b; return *this; }
- inline self& operator++() { ++a; return *this; }
- inline self& operator--() { --a; return *this; }
- inline self& operator+=(const self& x) { a += x.a; return *this; }
- inline self& operator-=(const self& x) { a -= x.a; return *this; }
- inline self& operator*=(const self& x) { a *= x.a; return *this; }
- inline self& operator/=(const self& x) { a /= x.a; return *this; }
- inline self& operator%=(const self& x) { return *this; } // JGS
- inline self& operator&=(const self& x) { return *this; } // JGS
- inline self& operator|=(const self& x) { return *this; } // JGS
- inline self& operator^=(const self& x) { return *this; } // JGS
- inline friend D operator-(const self& x, const self& y) {
- return x.a - y.a;
- }
- inline bool operator==(const self& x) const { return a == x.a; }
- inline bool operator<(const self& x) const { return a < x.a; }
- // protected:
- A a;
- B b;
- };
-
- struct shadow_iterator_policies
- {
- template <typename iter_pair>
- void initialize(const iter_pair&) { }
-
- template <typename Iter>
- typename Iter::reference dereference(const Iter& i) const {
- typedef typename Iter::reference R;
- return R(*i.base().first, *i.base().second);
- }
- template <typename Iter>
- bool equal(const Iter& p1, const Iter& p2) const {
- return p1.base().first == p2.base().first;
- }
- template <typename Iter>
- void increment(Iter& i) { ++i.base().first; ++i.base().second; }
-
- template <typename Iter>
- void decrement(Iter& i) { --i.base().first; --i.base().second; }
-
- template <typename Iter>
- bool less(const Iter& x, const Iter& y) const {
- return x.base().first < y.base().first;
- }
- template <typename Iter>
- typename Iter::difference_type
- distance(const Iter& x, const Iter& y) const {
- return y.base().first - x.base().first;
- }
- template <typename D, typename Iter>
- void advance(Iter& p, D n) { p.base().first += n; p.base().second += n; }
- };
-
- } // namespace detail
-
- template <typename IterA, typename IterB>
- struct shadow_iterator_generator {
-
- // To use the iterator_adaptor we can't derive from
- // random_access_iterator because we don't have a real reference.
- // However, we want the STL algorithms to treat the shadow
- // iterator like a random access iterator.
- struct shadow_iterator_tag : public std::input_iterator_tag {
- operator std::random_access_iterator_tag() {
- return std::random_access_iterator_tag();
- };
- };
- typedef typename std::iterator_traits<IterA>::value_type Aval;
- typedef typename std::iterator_traits<IterB>::value_type Bval;
- typedef typename std::iterator_traits<IterA>::reference Aref;
- typedef typename std::iterator_traits<IterB>::reference Bref;
- typedef typename std::iterator_traits<IterA>::difference_type D;
- typedef detail::shadow_proxy<Aval,Bval,Aval> V;
- typedef detail::shadow_proxy<Aref,Bref,Aval> R;
- typedef iterator_adaptor< std::pair<IterA, IterB>,
- detail::shadow_iterator_policies,
- V, R, V*, shadow_iterator_tag,
- D> type;
- };
-
- // short cut for creating a shadow iterator
- template <class IterA, class IterB>
- inline typename shadow_iterator_generator<IterA,IterB>::type
- make_shadow_iter(IterA a, IterB b) {
- typedef typename shadow_iterator_generator<IterA,IterB>::type Iter;
- return Iter(std::make_pair(a,b));
- }
-
- template <class Cmp>
- struct shadow_cmp {
- inline shadow_cmp(const Cmp& c) : cmp(c) { }
- template <class ShadowProxy1, class ShadowProxy2>
- inline bool operator()(const ShadowProxy1& x, const ShadowProxy2& y) const
- {
- return cmp(x.a, y.a);
- }
- Cmp cmp;
- };
-
-} // namespace boost
-
-namespace std {
- template <class A1, class B1, class D1,
- class A2, class B2, class D2>
- void swap(boost::detail::shadow_proxy<A1&,B1&,D1> x,
- boost::detail::shadow_proxy<A2&,B2&,D2> y)
- {
- std::swap(x.a, y.a);
- std::swap(x.b, y.b);
- }
-}
-
-#endif // BOOST_SHADOW_ITERATOR_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-#ifndef BOOST_GRAPH_DETAIL_SPARSE_ORDERING_HPP
-#define BOOST_GRAPH_DETAIL_SPARSE_ORDERING_HPP
-
-#include <boost/config.hpp>
-#include <vector>
-#include <queue>
-#include <boost/pending/queue.hpp>
-#include <boost/pending/mutable_queue.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-#include <boost/property_map.hpp>
-#include <boost/bind.hpp>
-#include <boost/graph/iteration_macros.hpp>
-#include <boost/graph/depth_first_search.hpp>
-
-namespace boost {
-
- namespace sparse {
-
- // rcm_queue
- //
- // This is a custom queue type used in the
- // *_ordering algorithms.
- // In addition to the normal queue operations, the
- // rcm_queue provides:
- //
- // int eccentricity() const;
- // value_type spouse() const;
- //
-
- // yes, it's a bad name...but it works, so use it
- template < class Vertex, class DegreeMap,
- class Container = std::deque<Vertex> >
- class rcm_queue : public std::queue<Vertex, Container> {
- typedef std::queue<Vertex> base;
- public:
- typedef typename base::value_type value_type;
- typedef typename base::size_type size_type;
-
- /* SGI queue has not had a contructor queue(const Container&) */
- inline rcm_queue(DegreeMap deg)
- : _size(0), Qsize(1), eccen(-1), degree(deg) { }
-
- inline void pop() {
- if ( !_size )
- Qsize = base::size();
-
- base::pop();
- if ( _size == Qsize-1 ) {
- _size = 0;
- ++eccen;
- } else
- ++_size;
-
- }
-
- inline value_type& front() {
- value_type& u = base::front();
- if ( _size == 0 )
- w = u;
- else if (get(degree,u) < get(degree,w) )
- w = u;
- return u;
- }
-
- inline const value_type& front() const {
- const value_type& u = base::front();
- if ( _size == 0 )
- w = u;
- else if (get(degree,u) < get(degree,w) )
- w = u;
- return u;
- }
-
- inline value_type& top() { return front(); }
- inline const value_type& top() const { return front(); }
-
- inline size_type size() const { return base::size(); }
-
- inline size_type eccentricity() const { return eccen; }
- inline value_type spouse() const { return w; }
-
- protected:
- size_type _size;
- size_type Qsize;
- int eccen;
- mutable value_type w;
- DegreeMap degree;
- };
-
-
- template <typename Tp, typename Sequence = std::deque<Tp> >
- class sparse_ordering_queue : public boost::queue<Tp, Sequence>{
- public:
- typedef typename Sequence::iterator iterator;
- typedef typename Sequence::reverse_iterator reverse_iterator;
- typedef boost::queue<Tp,Sequence> queue;
- typedef typename Sequence::size_type size_type;
-
- inline iterator begin() { return this->c.begin(); }
- inline reverse_iterator rbegin() { return this->c.rbegin(); }
- inline iterator end() { return this->c.end(); }
- inline reverse_iterator rend() { return this->c.rend(); }
- inline Tp &operator[](int n) { return this->c[n]; }
- inline size_type size() {return this->c.size(); }
- protected:
- //nothing
- };
-
- } // namespace sparse
-
- // Compute Pseudo peripheral
- //
- // To compute an approximated peripheral for a given vertex.
- // Used in <tt>king_ordering</tt> algorithm.
- //
- template <class Graph, class Vertex, class ColorMap, class DegreeMap>
- Vertex
- pseudo_peripheral_pair(Graph& G, const Vertex& u, int& ecc,
- ColorMap color, DegreeMap degree)
- {
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- sparse::rcm_queue<Vertex, DegreeMap> Q(degree);
-
- typename boost::graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
- if (get(color, *ui) != Color::red()) put(color, *ui, Color::white());
- breadth_first_visit(G, u, buffer(Q).color_map(color));
-
- ecc = Q.eccentricity();
- return Q.spouse();
- }
-
- // Find a good starting node
- //
- // This is to find a good starting node for the
- // king_ordering algorithm. "good" is in the sense
- // of the ordering generated by RCM.
- //
- template <class Graph, class Vertex, class Color, class Degree>
- Vertex find_starting_node(Graph& G, Vertex r, Color color, Degree degree)
- {
- Vertex x, y;
- int eccen_r, eccen_x;
-
- x = pseudo_peripheral_pair(G, r, eccen_r, color, degree);
- y = pseudo_peripheral_pair(G, x, eccen_x, color, degree);
-
- while (eccen_x > eccen_r) {
- r = x;
- eccen_r = eccen_x;
- x = y;
- y = pseudo_peripheral_pair(G, x, eccen_x, color, degree);
- }
- return x;
- }
-
-template <typename Graph>
-class out_degree_property_map
- : public put_get_helper<typename graph_traits<Graph>::degree_size_type,
- out_degree_property_map<Graph> >
-{
-public:
- typedef typename graph_traits<Graph>::vertex_descriptor key_type;
- typedef typename graph_traits<Graph>::degree_size_type value_type;
- typedef value_type reference;
- typedef readable_property_map_tag category;
- out_degree_property_map(const Graph& g) : m_g(g) { }
- value_type operator[](const key_type& v) const {
- return out_degree(v, m_g);
- }
-private:
- const Graph& m_g;
-};
-template <typename Graph>
-inline out_degree_property_map<Graph>
-make_out_degree_map(const Graph& g) {
- return out_degree_property_map<Graph>(g);
-}
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_KING_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DIJKSTRA_HPP
-#define BOOST_GRAPH_DIJKSTRA_HPP
-
-#include <functional>
-#include <boost/limits.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/graph/relax.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-#include <boost/graph/exception.hpp>
-#include <boost/pending/relaxed_heap.hpp>
-
-#ifdef BOOST_GRAPH_DIJKSTRA_TESTING
-# include <boost/pending/mutable_queue.hpp>
-#endif // BOOST_GRAPH_DIJKSTRA_TESTING
-
-namespace boost {
-
-#ifdef BOOST_GRAPH_DIJKSTRA_TESTING
- static bool dijkstra_relaxed_heap = true;
-#endif
-
- template <class Visitor, class Graph>
- struct DijkstraVisitorConcept {
- void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
- vis.discover_vertex(u, g);
- vis.examine_vertex(u, g);
- vis.examine_edge(e, g);
- vis.edge_relaxed(e, g);
- vis.edge_not_relaxed(e, g);
- vis.finish_vertex(u, g);
- }
- Visitor vis;
- Graph g;
- typename graph_traits<Graph>::vertex_descriptor u;
- typename graph_traits<Graph>::edge_descriptor e;
- };
-
- template <class Visitors = null_visitor>
- class dijkstra_visitor : public bfs_visitor<Visitors> {
- public:
- dijkstra_visitor() { }
- dijkstra_visitor(Visitors vis)
- : bfs_visitor<Visitors>(vis) { }
-
- template <class Edge, class Graph>
- void edge_relaxed(Edge e, Graph& g) {
- invoke_visitors(this->m_vis, e, g, on_edge_relaxed());
- }
- template <class Edge, class Graph>
- void edge_not_relaxed(Edge e, Graph& g) {
- invoke_visitors(this->m_vis, e, g, on_edge_not_relaxed());
- }
- private:
- template <class Edge, class Graph>
- void tree_edge(Edge u, Graph& g) { }
- };
- template <class Visitors>
- dijkstra_visitor<Visitors>
- make_dijkstra_visitor(Visitors vis) {
- return dijkstra_visitor<Visitors>(vis);
- }
- typedef dijkstra_visitor<> default_dijkstra_visitor;
-
- namespace detail {
-
- template <class UniformCostVisitor, class UpdatableQueue,
- class WeightMap, class PredecessorMap, class DistanceMap,
- class BinaryFunction, class BinaryPredicate>
- struct dijkstra_bfs_visitor
- {
- typedef typename property_traits<DistanceMap>::value_type D;
-
- dijkstra_bfs_visitor(UniformCostVisitor vis, UpdatableQueue& Q,
- WeightMap w, PredecessorMap p, DistanceMap d,
- BinaryFunction combine, BinaryPredicate compare,
- D zero)
- : m_vis(vis), m_Q(Q), m_weight(w), m_predecessor(p), m_distance(d),
- m_combine(combine), m_compare(compare), m_zero(zero) { }
-
- template <class Edge, class Graph>
- void tree_edge(Edge e, Graph& g) {
- m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
- m_combine, m_compare);
- if (m_decreased)
- m_vis.edge_relaxed(e, g);
- else
- m_vis.edge_not_relaxed(e, g);
- }
- template <class Edge, class Graph>
- void gray_target(Edge e, Graph& g) {
- m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
- m_combine, m_compare);
- if (m_decreased) {
- m_Q.update(target(e, g));
- m_vis.edge_relaxed(e, g);
- } else
- m_vis.edge_not_relaxed(e, g);
- }
-
- template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, Graph& g)
- { m_vis.initialize_vertex(u, g); }
- template <class Edge, class Graph>
- void non_tree_edge(Edge, Graph&) { }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) { m_vis.discover_vertex(u, g); }
- template <class Vertex, class Graph>
- void examine_vertex(Vertex u, Graph& g) { m_vis.examine_vertex(u, g); }
- template <class Edge, class Graph>
- void examine_edge(Edge e, Graph& g) {
- if (m_compare(get(m_weight, e), m_zero))
- throw negative_edge();
- m_vis.examine_edge(e, g);
- }
- template <class Edge, class Graph>
- void black_target(Edge, Graph&) { }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) { m_vis.finish_vertex(u, g); }
-
- UniformCostVisitor m_vis;
- UpdatableQueue& m_Q;
- WeightMap m_weight;
- PredecessorMap m_predecessor;
- DistanceMap m_distance;
- BinaryFunction m_combine;
- BinaryPredicate m_compare;
- bool m_decreased;
- D m_zero;
- };
-
- } // namespace detail
-
- // Call breadth first search with default color map.
- template <class VertexListGraph, class DijkstraVisitor,
- class PredecessorMap, class DistanceMap,
- class WeightMap, class IndexMap, class Compare, class Combine,
- class DistZero>
- inline void
- dijkstra_shortest_paths_no_init
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
- IndexMap index_map,
- Compare compare, Combine combine, DistZero zero,
- DijkstraVisitor vis)
- {
- std::vector<default_color_type> color(num_vertices(g));
- default_color_type c = white_color;
- dijkstra_shortest_paths_no_init( g, s, predecessor, distance, weight,
- index_map, compare, combine, zero, vis,
- make_iterator_property_map(&color[0], index_map, c));
- }
-
- // Call breadth first search
- template <class VertexListGraph, class DijkstraVisitor,
- class PredecessorMap, class DistanceMap,
- class WeightMap, class IndexMap, class Compare, class Combine,
- class DistZero, class ColorMap>
- inline void
- dijkstra_shortest_paths_no_init
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
- IndexMap index_map,
- Compare compare, Combine combine, DistZero zero,
- DijkstraVisitor vis, ColorMap color)
- {
- typedef indirect_cmp<DistanceMap, Compare> IndirectCmp;
- IndirectCmp icmp(distance, compare);
-
- typedef typename graph_traits<VertexListGraph>::vertex_descriptor Vertex;
-
-#ifdef BOOST_GRAPH_DIJKSTRA_TESTING
- if (!dijkstra_relaxed_heap) {
- typedef mutable_queue<Vertex, std::vector<Vertex>, IndirectCmp, IndexMap>
- MutableQueue;
-
- MutableQueue Q(num_vertices(g), icmp, index_map);
-
- detail::dijkstra_bfs_visitor<DijkstraVisitor, MutableQueue, WeightMap,
- PredecessorMap, DistanceMap, Combine, Compare>
- bfs_vis(vis, Q, weight, predecessor, distance, combine, compare, zero);
-
- breadth_first_visit(g, s, Q, bfs_vis, color);
- return;
- }
-#endif // BOOST_GRAPH_DIJKSTRA_TESTING
-
- typedef relaxed_heap<Vertex, IndirectCmp, IndexMap> MutableQueue;
-
- MutableQueue Q(num_vertices(g), icmp, index_map);
-
- detail::dijkstra_bfs_visitor<DijkstraVisitor, MutableQueue, WeightMap,
- PredecessorMap, DistanceMap, Combine, Compare>
- bfs_vis(vis, Q, weight, predecessor, distance, combine, compare, zero);
-
- breadth_first_visit(g, s, Q, bfs_vis, color);
- }
-
- // Initialize distances and call breadth first search with default color map
- template <class VertexListGraph, class DijkstraVisitor,
- class PredecessorMap, class DistanceMap,
- class WeightMap, class IndexMap, class Compare, class Combine,
- class DistInf, class DistZero>
- inline void
- dijkstra_shortest_paths
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
- IndexMap index_map,
- Compare compare, Combine combine, DistInf inf, DistZero zero,
- DijkstraVisitor vis)
- {
- std::vector<default_color_type> color(num_vertices(g));
- default_color_type c = white_color;
- dijkstra_shortest_paths(g, s, predecessor, distance, weight, index_map,
- compare, combine, inf, zero, vis,
- make_iterator_property_map(&color[0], index_map,
- c));
- }
-
- // Initialize distances and call breadth first search
- template <class VertexListGraph, class DijkstraVisitor,
- class PredecessorMap, class DistanceMap,
- class WeightMap, class IndexMap, class Compare, class Combine,
- class DistInf, class DistZero, class ColorMap>
- inline void
- dijkstra_shortest_paths
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
- IndexMap index_map,
- Compare compare, Combine combine, DistInf inf, DistZero zero,
- DijkstraVisitor vis, ColorMap color)
- {
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- put(distance, *ui, inf);
- put(predecessor, *ui, *ui);
- put(color, *ui, Color::white());
- }
- put(distance, s, zero);
-
- dijkstra_shortest_paths_no_init(g, s, predecessor, distance, weight,
- index_map, compare, combine, zero, vis, color);
- }
-
- namespace detail {
-
- // Handle defaults for PredecessorMap and
- // Distance Compare, Combine, Inf and Zero
- template <class VertexListGraph, class DistanceMap, class WeightMap,
- class IndexMap, class Params, class ColorMap>
- inline void
- dijkstra_dispatch2
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- DistanceMap distance, WeightMap weight, IndexMap index_map,
- const Params& params, ColorMap color)
- {
- // Default for predecessor map
- dummy_property_map p_map;
-
- typedef typename property_traits<DistanceMap>::value_type D;
- dijkstra_shortest_paths
- (g, s,
- choose_param(get_param(params, vertex_predecessor), p_map),
- distance, weight, index_map,
- choose_param(get_param(params, distance_compare_t()),
- std::less<D>()),
- choose_param(get_param(params, distance_combine_t()),
- closed_plus<D>()),
- choose_param(get_param(params, distance_inf_t()),
- (std::numeric_limits<D>::max)()),
- choose_param(get_param(params, distance_zero_t()),
- D()),
- choose_param(get_param(params, graph_visitor),
- make_dijkstra_visitor(null_visitor())),
- color);
- }
-
- template <class VertexListGraph, class DistanceMap, class WeightMap,
- class IndexMap, class Params, class ColorMap>
- inline void
- dijkstra_dispatch1
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- DistanceMap distance, WeightMap weight, IndexMap index_map,
- const Params& params, ColorMap color)
- {
- // Default for distance map
- typedef typename property_traits<WeightMap>::value_type D;
- typename std::vector<D>::size_type
- n = is_default_param(distance) ? num_vertices(g) : 1;
- std::vector<D> distance_map(n);
-
- // Default for color map
- typename std::vector<default_color_type>::size_type
- m = is_default_param(color) ? num_vertices(g) : 1;
- std::vector<default_color_type> color_map(m);
-
- detail::dijkstra_dispatch2
- (g, s, choose_param(distance, make_iterator_property_map
- (distance_map.begin(), index_map,
- distance_map[0])),
- weight, index_map, params,
- choose_param(color, make_iterator_property_map
- (color_map.begin(), index_map,
- color_map[0])));
- }
- } // namespace detail
-
- // Named Parameter Variant
- template <class VertexListGraph, class Param, class Tag, class Rest>
- inline void
- dijkstra_shortest_paths
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<Param,Tag,Rest>& params)
- {
- // Default for edge weight and vertex index map is to ask for them
- // from the graph. Default for the visitor is null_visitor.
- detail::dijkstra_dispatch1
- (g, s,
- get_param(params, vertex_distance),
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
- params,
- get_param(params, vertex_color));
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_DIJKSTRA_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2000 University of Notre Dame.
-// Authors: Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee
-//
-// Distributed under the 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_EDGE_CONNECTIVITY
-#define BOOST_EDGE_CONNECTIVITY
-
-// WARNING: not-yet fully tested!
-
-#include <boost/config.hpp>
-#include <vector>
-#include <set>
-#include <algorithm>
-#include <boost/graph/edmunds_karp_max_flow.hpp>
-
-namespace boost {
-
- namespace detail {
-
- template <class Graph>
- inline
- std::pair<typename graph_traits<Graph>::vertex_descriptor,
- typename graph_traits<Graph>::degree_size_type>
- min_degree_vertex(Graph& g)
- {
- typedef graph_traits<Graph> Traits;
- typename Traits::vertex_descriptor p;
- typedef typename Traits::degree_size_type size_type;
- size_type delta = (std::numeric_limits<size_type>::max)();
-
- typename Traits::vertex_iterator i, iend;
- for (tie(i, iend) = vertices(g); i != iend; ++i)
- if (degree(*i, g) < delta) {
- delta = degree(*i, g);
- p = *i;
- }
- return std::make_pair(p, delta);
- }
-
- template <class Graph, class OutputIterator>
- void neighbors(const Graph& g,
- typename graph_traits<Graph>::vertex_descriptor u,
- OutputIterator result)
- {
- typename graph_traits<Graph>::adjacency_iterator ai, aend;
- for (tie(ai, aend) = adjacent_vertices(u, g); ai != aend; ++ai)
- *result++ = *ai;
- }
-
- template <class Graph, class VertexIterator, class OutputIterator>
- void neighbors(const Graph& g,
- VertexIterator first, VertexIterator last,
- OutputIterator result)
- {
- for (; first != last; ++first)
- neighbors(g, *first, result);
- }
-
- } // namespace detail
-
- // O(m n)
- template <class VertexListGraph, class OutputIterator>
- typename graph_traits<VertexListGraph>::degree_size_type
- edge_connectivity(VertexListGraph& g, OutputIterator disconnecting_set)
- {
- //-------------------------------------------------------------------------
- // Type Definitions
- typedef graph_traits<VertexListGraph> Traits;
- typedef typename Traits::vertex_iterator vertex_iterator;
- typedef typename Traits::edge_iterator edge_iterator;
- typedef typename Traits::out_edge_iterator out_edge_iterator;
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::degree_size_type degree_size_type;
- typedef color_traits<default_color_type> Color;
-
- typedef adjacency_list_traits<vecS, vecS, directedS> Tr;
- typedef typename Tr::edge_descriptor Tr_edge_desc;
- typedef adjacency_list<vecS, vecS, directedS, no_property,
- property<edge_capacity_t, degree_size_type,
- property<edge_residual_capacity_t, degree_size_type,
- property<edge_reverse_t, Tr_edge_desc> > > >
- FlowGraph;
- typedef typename graph_traits<FlowGraph>::edge_descriptor edge_descriptor;
-
- //-------------------------------------------------------------------------
- // Variable Declarations
- vertex_descriptor u, v, p, k;
- edge_descriptor e1, e2;
- bool inserted;
- vertex_iterator vi, vi_end;
- edge_iterator ei, ei_end;
- degree_size_type delta, alpha_star, alpha_S_k;
- std::set<vertex_descriptor> S, neighbor_S;
- std::vector<vertex_descriptor> S_star, non_neighbor_S;
- std::vector<default_color_type> color(num_vertices(g));
- std::vector<edge_descriptor> pred(num_vertices(g));
-
- //-------------------------------------------------------------------------
- // Create a network flow graph out of the undirected graph
- FlowGraph flow_g(num_vertices(g));
-
- typename property_map<FlowGraph, edge_capacity_t>::type
- cap = get(edge_capacity, flow_g);
- typename property_map<FlowGraph, edge_residual_capacity_t>::type
- res_cap = get(edge_residual_capacity, flow_g);
- typename property_map<FlowGraph, edge_reverse_t>::type
- rev_edge = get(edge_reverse, flow_g);
-
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
- u = source(*ei, g), v = target(*ei, g);
- tie(e1, inserted) = add_edge(u, v, flow_g);
- cap[e1] = 1;
- tie(e2, inserted) = add_edge(v, u, flow_g);
- cap[e2] = 1; // not sure about this
- rev_edge[e1] = e2;
- rev_edge[e2] = e1;
- }
-
- //-------------------------------------------------------------------------
- // The Algorithm
-
- tie(p, delta) = detail::min_degree_vertex(g);
- S_star.push_back(p);
- alpha_star = delta;
- S.insert(p);
- neighbor_S.insert(p);
- detail::neighbors(g, S.begin(), S.end(),
- std::inserter(neighbor_S, neighbor_S.begin()));
-
- std::set_difference(vertices(g).first, vertices(g).second,
- neighbor_S.begin(), neighbor_S.end(),
- std::back_inserter(non_neighbor_S));
-
- while (!non_neighbor_S.empty()) { // at most n - 1 times
- k = non_neighbor_S.front();
-
- alpha_S_k = edmunds_karp_max_flow
- (flow_g, p, k, cap, res_cap, rev_edge, &color[0], &pred[0]);
-
- if (alpha_S_k < alpha_star) {
- alpha_star = alpha_S_k;
- S_star.clear();
- for (tie(vi, vi_end) = vertices(flow_g); vi != vi_end; ++vi)
- if (color[*vi] != Color::white())
- S_star.push_back(*vi);
- }
- S.insert(k);
- neighbor_S.insert(k);
- detail::neighbors(g, k, std::inserter(neighbor_S, neighbor_S.begin()));
- non_neighbor_S.clear();
- std::set_difference(vertices(g).first, vertices(g).second,
- neighbor_S.begin(), neighbor_S.end(),
- std::back_inserter(non_neighbor_S));
- }
- //-------------------------------------------------------------------------
- // Compute edges of the cut [S*, ~S*]
- std::vector<bool> in_S_star(num_vertices(g), false);
- typename std::vector<vertex_descriptor>::iterator si;
- for (si = S_star.begin(); si != S_star.end(); ++si)
- in_S_star[*si] = true;
-
- degree_size_type c = 0;
- for (si = S_star.begin(); si != S_star.end(); ++si) {
- out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*si, g); ei != ei_end; ++ei)
- if (!in_S_star[target(*ei, g)]) {
- *disconnecting_set++ = *ei;
- ++c;
- }
- }
- return c;
- }
-
-} // namespace boost
-
-#endif // BOOST_EDGE_CONNECTIVITY
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_EDGE_LIST_HPP
-#define BOOST_GRAPH_EDGE_LIST_HPP
-
-#include <iterator>
-#include <boost/config.hpp>
-#include <boost/pending/ct_if.hpp>
-#include <boost/pending/integer_range.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-
-namespace boost {
-
- //
- // The edge_list class is an EdgeListGraph module that is constructed
- // from a pair of iterators whose value type is a pair of vertex
- // descriptors.
- //
- // For example:
- //
- // typedef std::pair<int,int> E;
- // list<E> elist;
- // ...
- // typedef edge_list<list<E>::iterator> Graph;
- // Graph g(elist.begin(), elist.end());
- //
- // If the iterators are random access, then Graph::edge_descriptor
- // is of Integral type, otherwise it is a struct, though it is
- // convertible to an Integral type.
- //
-
- struct edge_list_tag { };
-
- // The implementation class for edge_list.
- template <class G, class EdgeIter, class T, class D>
- class edge_list_impl
- {
- public:
- typedef D edge_id;
- typedef T Vpair;
- typedef typename Vpair::first_type V;
- typedef V vertex_descriptor;
- typedef edge_list_tag graph_tag;
- typedef void edge_property_type;
-
- struct edge_descriptor
- {
- edge_descriptor() { }
- edge_descriptor(EdgeIter p, edge_id id) : _ptr(p), _id(id) { }
- operator edge_id() { return _id; }
- EdgeIter _ptr;
- edge_id _id;
- };
- typedef edge_descriptor E;
-
- struct edge_iterator
- {
- typedef edge_iterator self;
- typedef E value_type;
- typedef E& reference;
- typedef E* pointer;
- typedef std::ptrdiff_t difference_type;
- typedef std::input_iterator_tag iterator_category;
- edge_iterator() { }
- edge_iterator(EdgeIter iter) : _iter(iter), _i(0) { }
- E operator*() { return E(_iter, _i); }
- self& operator++() { ++_iter; ++_i; return *this; }
- self operator++(int) { self t = *this; ++(*this); return t; }
- bool operator==(const self& x) { return _iter == x._iter; }
- bool operator!=(const self& x) { return _iter != x._iter; }
- EdgeIter _iter;
- edge_id _i;
- };
- typedef void out_edge_iterator;
- typedef void in_edge_iterator;
- typedef void adjacency_iterator;
- typedef void vertex_iterator;
- };
-
- template <class G, class EI, class T, class D>
- std::pair<typename edge_list_impl<G,EI,T,D>::edge_iterator,
- typename edge_list_impl<G,EI,T,D>::edge_iterator>
- edges(const edge_list_impl<G,EI,T,D>& g_) {
- const G& g = static_cast<const G&>(g_);
- typedef typename edge_list_impl<G,EI,T,D>::edge_iterator edge_iterator;
- return std::make_pair(edge_iterator(g._first), edge_iterator(g._last));
- }
- template <class G, class EI, class T, class D>
- typename edge_list_impl<G,EI,T,D>::vertex_descriptor
- source(typename edge_list_impl<G,EI,T,D>::edge_descriptor e,
- const edge_list_impl<G,EI,T,D>&) {
- return (*e._ptr).first;
- }
- template <class G, class EI, class T, class D>
- typename edge_list_impl<G,EI,T,D>::vertex_descriptor
- target(typename edge_list_impl<G,EI,T,D>::edge_descriptor e,
- const edge_list_impl<G,EI,T,D>&) {
- return (*e._ptr).second;
- }
-
- template <class D, class E>
- class el_edge_property_map
- : public put_get_helper<D, el_edge_property_map<D,E> >{
- public:
- typedef E key_type;
- typedef D value_type;
- typedef D reference;
- typedef readable_property_map_tag category;
-
- value_type operator[](key_type e) const {
- return e._i;
- }
- };
- struct edge_list_edge_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef el_edge_property_map<typename Graph::edge_id,
- typename Graph::edge_descriptor> type;
- typedef type const_type;
- };
- };
- template <>
- struct edge_property_selector<edge_list_tag> {
- typedef edge_list_edge_property_selector type;
- };
-
- template <class G, class EI, class T, class D>
- typename property_map< edge_list_impl<G,EI,T,D>, edge_index_t>::type
- get(edge_index_t, const edge_list_impl<G,EI,T,D>&) {
- typedef typename property_map< edge_list_impl<G,EI,T,D>,
- edge_index_t>::type EdgeIndexMap;
- return EdgeIndexMap();
- }
-
- template <class G, class EI, class T, class D>
- inline D
- get(edge_index_t, const edge_list_impl<G,EI,T,D>&,
- typename edge_list_impl<G,EI,T,D>::edge_descriptor e) {
- return e._i;
- }
-
- // A specialized implementation for when the iterators are random access.
-
- struct edge_list_ra_tag { };
-
- template <class G, class EdgeIter, class T, class D>
- class edge_list_impl_ra
- {
- public:
- typedef D edge_id;
- typedef T Vpair;
- typedef typename Vpair::first_type V;
- typedef edge_list_ra_tag graph_tag;
- typedef void edge_property_type;
-
- typedef edge_id edge_descriptor;
- typedef V vertex_descriptor;
- typedef typename boost::integer_range<edge_id>::iterator edge_iterator;
- typedef void out_edge_iterator;
- typedef void in_edge_iterator;
- typedef void adjacency_iterator;
- typedef void vertex_iterator;
- };
-
- template <class G, class EI, class T, class D>
- std::pair<typename edge_list_impl_ra<G,EI,T,D>::edge_iterator,
- typename edge_list_impl_ra<G,EI,T,D>::edge_iterator>
- edges(const edge_list_impl_ra<G,EI,T,D>& g_)
- {
- const G& g = static_cast<const G&>(g_);
- typedef typename edge_list_impl_ra<G,EI,T,D>::edge_iterator edge_iterator;
- return std::make_pair(edge_iterator(0), edge_iterator(g._last - g._first));
- }
- template <class G, class EI, class T, class D>
- typename edge_list_impl_ra<G,EI,T,D>::vertex_descriptor
- source(typename edge_list_impl_ra<G,EI,T,D>::edge_descriptor e,
- const edge_list_impl_ra<G,EI,T,D>& g_)
- {
- const G& g = static_cast<const G&>(g_);
- return g._first[e].first;
- }
- template <class G, class EI, class T, class D>
- typename edge_list_impl_ra<G,EI,T,D>::vertex_descriptor
- target(typename edge_list_impl_ra<G,EI,T,D>::edge_descriptor e,
- const edge_list_impl_ra<G,EI,T,D>& g_)
- {
- const G& g = static_cast<const G&>(g_);
- return g._first[e].second;
- }
- template <class E>
- class el_ra_edge_property_map
- : public put_get_helper<E, el_ra_edge_property_map<E> >{
- public:
- typedef E key_type;
- typedef E value_type;
- typedef E reference;
- typedef readable_property_map_tag category;
-
- value_type operator[](key_type e) const {
- return e;
- }
- };
- struct edge_list_ra_edge_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef el_ra_edge_property_map<typename Graph::edge_descriptor> type;
- typedef type const_type;
- };
- };
- template <>
- struct edge_property_selector<edge_list_ra_tag> {
- typedef edge_list_ra_edge_property_selector type;
- };
- template <class G, class EI, class T, class D>
- inline
- typename property_map< edge_list_impl_ra<G,EI,T,D>, edge_index_t>::type
- get(edge_index_t, const edge_list_impl_ra<G,EI,T,D>&) {
- typedef typename property_map< edge_list_impl_ra<G,EI,T,D>,
- edge_index_t>::type EdgeIndexMap;
- return EdgeIndexMap();
- }
-
- template <class G, class EI, class T, class D>
- inline D
- get(edge_index_t, const edge_list_impl_ra<G,EI,T,D>&,
- typename edge_list_impl_ra<G,EI,T,D>::edge_descriptor e) {
- return e;
- }
-
-
- // Some helper classes for determining if the iterators are random access
- template <class Cat>
- struct is_random {
- enum { RET = false };
- typedef false_type type;
- };
- template <>
- struct is_random<std::random_access_iterator_tag> {
- enum { RET = true }; typedef true_type type;
- };
-
- // The edge_list class conditionally inherits from one of the
- // above two classes.
-
- template <class EdgeIter,
-#if !defined BOOST_NO_STD_ITERATOR_TRAITS
- class T = typename std::iterator_traits<EdgeIter>::value_type,
- class D = typename std::iterator_traits<EdgeIter>::difference_type,
- class Cat = typename std::iterator_traits<EdgeIter>::iterator_category>
-#else
- class T,
- class D,
- class Cat>
-#endif
- class edge_list
- : public ct_if_t< typename is_random<Cat>::type,
- edge_list_impl_ra< edge_list<EdgeIter,T,D,Cat>, EdgeIter,T,D>,
- edge_list_impl< edge_list<EdgeIter,T,D,Cat>, EdgeIter,T,D>
- >::type
- {
- public:
- typedef directed_tag directed_category;
- typedef allow_parallel_edge_tag edge_parallel_category;
- typedef edge_list_graph_tag traversal_category;
- typedef std::size_t edges_size_type;
- typedef std::size_t vertices_size_type;
- typedef std::size_t degree_size_type;
- edge_list(EdgeIter first, EdgeIter last) : _first(first), _last(last) {
- m_num_edges = std::distance(first, last);
- }
- edge_list(EdgeIter first, EdgeIter last, edges_size_type E)
- : _first(first), _last(last), m_num_edges(E) { }
-
- EdgeIter _first, _last;
- edges_size_type m_num_edges;
- };
-
- template <class EdgeIter, class T, class D, class Cat>
- std::size_t num_edges(const edge_list<EdgeIter, T, D, Cat>& el) {
- return el.m_num_edges;
- }
-
-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
- template <class EdgeIter>
- inline edge_list<EdgeIter>
- make_edge_list(EdgeIter first, EdgeIter last)
- {
- return edge_list<EdgeIter>(first, last);
- }
-#endif
-
-} /* namespace boost */
-
-#endif /* BOOST_GRAPH_EDGE_LIST_HPP */
+++ /dev/null
-//=======================================================================
-// Copyright 2000 University of Notre Dame.
-// Authors: Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee
-//
-// Distributed under the 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 EDMUNDS_KARP_MAX_FLOW_HPP
-#define EDMUNDS_KARP_MAX_FLOW_HPP
-
-#include <boost/config.hpp>
-#include <vector>
-#include <algorithm> // for std::min and std::max
-#include <boost/config.hpp>
-#include <boost/pending/queue.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/filtered_graph.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-
-namespace boost {
-
- // The "labeling" algorithm from "Network Flows" by Ahuja, Magnanti,
- // Orlin. I think this is the same as or very similar to the original
- // Edmunds-Karp algorithm. This solves the maximum flow problem.
-
- namespace detail {
-
- template <class Graph, class ResCapMap>
- filtered_graph<Graph, is_residual_edge<ResCapMap> >
- residual_graph(Graph& g, ResCapMap residual_capacity) {
- return filtered_graph<Graph, is_residual_edge<ResCapMap> >
- (g, is_residual_edge<ResCapMap>(residual_capacity));
- }
-
- template <class Graph, class PredEdgeMap, class ResCapMap,
- class RevEdgeMap>
- inline void
- augment(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- PredEdgeMap p,
- ResCapMap residual_capacity,
- RevEdgeMap reverse_edge)
- {
- typename graph_traits<Graph>::edge_descriptor e;
- typename graph_traits<Graph>::vertex_descriptor u;
- typedef typename property_traits<ResCapMap>::value_type FlowValue;
-
- // find minimum residual capacity along the augmenting path
- FlowValue delta = (std::numeric_limits<FlowValue>::max)();
- e = p[sink];
- do {
- BOOST_USING_STD_MIN();
- delta = min BOOST_PREVENT_MACRO_SUBSTITUTION(delta, residual_capacity[e]);
- u = source(e, g);
- e = p[u];
- } while (u != src);
-
- // push delta units of flow along the augmenting path
- e = p[sink];
- do {
- residual_capacity[e] -= delta;
- residual_capacity[reverse_edge[e]] += delta;
- u = source(e, g);
- e = p[u];
- } while (u != src);
- }
-
- } // namespace detail
-
- template <class Graph,
- class CapacityEdgeMap, class ResidualCapacityEdgeMap,
- class ReverseEdgeMap, class ColorMap, class PredEdgeMap>
- typename property_traits<CapacityEdgeMap>::value_type
- edmunds_karp_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- CapacityEdgeMap cap,
- ResidualCapacityEdgeMap res,
- ReverseEdgeMap rev,
- ColorMap color,
- PredEdgeMap pred)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- typename graph_traits<Graph>::vertex_iterator u_iter, u_end;
- typename graph_traits<Graph>::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
- res[*ei] = cap[*ei];
-
- color[sink] = Color::gray();
- while (color[sink] != Color::white()) {
- boost::queue<vertex_t> Q;
- breadth_first_search
- (detail::residual_graph(g, res), src, Q,
- make_bfs_visitor(record_edge_predecessors(pred, on_tree_edge())),
- color);
- if (color[sink] != Color::white())
- detail::augment(g, src, sink, pred, res, rev);
- } // while
-
- typename property_traits<CapacityEdgeMap>::value_type flow = 0;
- for (tie(ei, e_end) = out_edges(src, g); ei != e_end; ++ei)
- flow += (cap[*ei] - res[*ei]);
- return flow;
- } // edmunds_karp_max_flow()
-
- namespace detail {
- //-------------------------------------------------------------------------
- // Handle default for color property map
-
- // use of class here is a VC++ workaround
- template <class ColorMap>
- struct edmunds_karp_dispatch2 {
- template <class Graph, class PredMap, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- PredMap pred,
- const bgl_named_params<P, T, R>& params,
- ColorMap color)
- {
- return edmunds_karp_max_flow
- (g, src, sink,
- choose_const_pmap(get_param(params, edge_capacity), g, edge_capacity),
- choose_pmap(get_param(params, edge_residual_capacity),
- g, edge_residual_capacity),
- choose_const_pmap(get_param(params, edge_reverse), g, edge_reverse),
- color, pred);
- }
- };
- template<>
- struct edmunds_karp_dispatch2<detail::error_property_not_found> {
- template <class Graph, class PredMap, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- PredMap pred,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- size_type n = is_default_param(get_param(params, vertex_color)) ?
- num_vertices(g) : 1;
- std::vector<default_color_type> color_vec(n);
- return edmunds_karp_max_flow
- (g, src, sink,
- choose_const_pmap(get_param(params, edge_capacity), g, edge_capacity),
- choose_pmap(get_param(params, edge_residual_capacity),
- g, edge_residual_capacity),
- choose_const_pmap(get_param(params, edge_reverse), g, edge_reverse),
- make_iterator_property_map(color_vec.begin(), choose_const_pmap
- (get_param(params, vertex_index),
- g, vertex_index), color_vec[0]),
- pred);
- }
- };
-
- //-------------------------------------------------------------------------
- // Handle default for predecessor property map
-
- // use of class here is a VC++ workaround
- template <class PredMap>
- struct edmunds_karp_dispatch1 {
- template <class Graph, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params,
- PredMap pred)
- {
- typedef typename property_value< bgl_named_params<P,T,R>, vertex_color_t>::type C;
- return edmunds_karp_dispatch2<C>::apply
- (g, src, sink, pred, params, get_param(params, vertex_color));
- }
- };
- template<>
- struct edmunds_karp_dispatch1<detail::error_property_not_found> {
-
- template <class Graph, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- size_type n = is_default_param(get_param(params, vertex_predecessor)) ?
- num_vertices(g) : 1;
- std::vector<edge_descriptor> pred_vec(n);
-
- typedef typename property_value< bgl_named_params<P,T,R>, vertex_color_t>::type C;
- return edmunds_karp_dispatch2<C>::apply
- (g, src, sink,
- make_iterator_property_map(pred_vec.begin(), choose_const_pmap
- (get_param(params, vertex_index),
- g, vertex_index), pred_vec[0]),
- params,
- get_param(params, vertex_color));
- }
- };
-
- } // namespace detail
-
- template <class Graph, class P, class T, class R>
- typename detail::edge_capacity_value<Graph, P, T, R>::type
- edmunds_karp_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_value< bgl_named_params<P,T,R>, vertex_predecessor_t>::type Pred;
- return detail::edmunds_karp_dispatch1<Pred>::apply
- (g, src, sink, params, get_param(params, vertex_predecessor));
- }
-
- template <class Graph>
- typename property_traits<
- typename property_map<Graph, edge_capacity_t>::const_type
- >::value_type
- edmunds_karp_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink)
- {
- bgl_named_params<int, buffer_param_t> params(0);
- return edmunds_karp_max_flow(g, src, sink, params);
- }
-
-} // namespace boost
-
-#endif // EDMUNDS_KARP_MAX_FLOW_HPP
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_ERDOS_RENYI_GENERATOR_HPP
-#define BOOST_GRAPH_ERDOS_RENYI_GENERATOR_HPP
-
-#include <iterator>
-#include <utility>
-#include <boost/random/uniform_int.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/type_traits/is_base_and_derived.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost {
-
- template<typename RandomGenerator, typename Graph>
- class erdos_renyi_iterator
- {
- typedef typename graph_traits<Graph>::directed_category directed_category;
- typedef typename graph_traits<Graph>::vertices_size_type vertices_size_type;
- typedef typename graph_traits<Graph>::edges_size_type edges_size_type;
-
- BOOST_STATIC_CONSTANT
- (bool,
- is_undirected = (is_base_and_derived<undirected_tag,
- directed_category>::value
- || is_same<undirected_tag, directed_category>::value));
-
- public:
- typedef std::input_iterator_tag iterator_category;
- typedef std::pair<vertices_size_type, vertices_size_type> value_type;
- typedef const value_type& reference;
- typedef const value_type* pointer;
- typedef void difference_type;
-
- erdos_renyi_iterator() : gen(0), n(0), edges(0), allow_self_loops(false) {}
- erdos_renyi_iterator(RandomGenerator& gen, vertices_size_type n,
- double prob = 0.0, bool allow_self_loops = false)
- : gen(&gen), n(n), edges(edges_size_type(prob * n * n)),
- allow_self_loops(allow_self_loops)
- {
- if (is_undirected) edges = edges / 2;
- next();
- }
-
- reference operator*() const { return current; }
- pointer operator->() const { return ¤t; }
-
- erdos_renyi_iterator& operator++()
- {
- --edges;
- next();
- return *this;
- }
-
- erdos_renyi_iterator operator++(int)
- {
- erdos_renyi_iterator temp(*this);
- ++(*this);
- return temp;
- }
-
- bool operator==(const erdos_renyi_iterator& other) const
- { return edges == other.edges; }
-
- bool operator!=(const erdos_renyi_iterator& other) const
- { return !(*this == other); }
-
- private:
- void next()
- {
- uniform_int<vertices_size_type> rand_vertex(0, n-1);
- current.first = rand_vertex(*gen);
- do {
- current.second = rand_vertex(*gen);
- } while (current.first == current.second && !allow_self_loops);
- }
-
- RandomGenerator* gen;
- vertices_size_type n;
- edges_size_type edges;
- bool allow_self_loops;
- value_type current;
- };
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_ERDOS_RENYI_GENERATOR_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_EXCEPTION_HPP
-#define BOOST_GRAPH_EXCEPTION_HPP
-
-#include <stdexcept>
-#include <string>
-
-namespace boost {
-
- struct bad_graph : public std::invalid_argument {
- bad_graph(const std::string& what_arg)
- : std::invalid_argument(what_arg) { }
- };
-
- struct not_a_dag : public bad_graph {
- not_a_dag()
- : bad_graph("The graph must be a DAG.") { }
- };
-
- struct negative_edge : public bad_graph {
- negative_edge()
- : bad_graph("The graph may not contain an edge with negative weight."){ }
- };
-
- struct negative_cycle : public bad_graph {
- negative_cycle()
- : bad_graph("The graph may not contain negative cycles.") { }
- };
- struct not_connected : public bad_graph {
- not_connected()
- : bad_graph("The graph must be connected.") { }
- };
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_EXCEPTION_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_FILTERED_GRAPH_HPP
-#define BOOST_FILTERED_GRAPH_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/adjacency_iterator.hpp>
-#include <boost/iterator/filter_iterator.hpp>
-
-namespace boost {
-
- //=========================================================================
- // Some predicate classes.
-
- struct keep_all {
- template <typename T>
- bool operator()(const T&) const { return true; }
- };
-
- // Keep residual edges (used in maximum-flow algorithms).
- template <typename ResidualCapacityEdgeMap>
- struct is_residual_edge {
- is_residual_edge() { }
- is_residual_edge(ResidualCapacityEdgeMap rcap) : m_rcap(rcap) { }
- template <typename Edge>
- bool operator()(const Edge& e) const {
- return 0 < get(m_rcap, e);
- }
- ResidualCapacityEdgeMap m_rcap;
- };
-
- template <typename Set>
- struct is_in_subset {
- is_in_subset() : m_s(0) { }
- is_in_subset(const Set& s) : m_s(&s) { }
-
- template <typename Elt>
- bool operator()(const Elt& x) const {
- return set_contains(*m_s, x);
- }
- const Set* m_s;
- };
-
- template <typename Set>
- struct is_not_in_subset {
- is_not_in_subset() : m_s(0) { }
- is_not_in_subset(const Set& s) : m_s(&s) { }
-
- template <typename Elt>
- bool operator()(const Elt& x) const {
- return !set_contains(*m_s, x);
- }
- const Set* m_s;
- };
-
- namespace detail {
-
- template <typename EdgePredicate, typename VertexPredicate, typename Graph>
- struct out_edge_predicate {
- out_edge_predicate() { }
- out_edge_predicate(EdgePredicate ep, VertexPredicate vp,
- const Graph& g)
- : m_edge_pred(ep), m_vertex_pred(vp), m_g(&g) { }
-
- template <typename Edge>
- bool operator()(const Edge& e) const {
- return m_edge_pred(e) && m_vertex_pred(target(e, *m_g));
- }
- EdgePredicate m_edge_pred;
- VertexPredicate m_vertex_pred;
- const Graph* m_g;
- };
-
- template <typename EdgePredicate, typename VertexPredicate, typename Graph>
- struct in_edge_predicate {
- in_edge_predicate() { }
- in_edge_predicate(EdgePredicate ep, VertexPredicate vp,
- const Graph& g)
- : m_edge_pred(ep), m_vertex_pred(vp), m_g(&g) { }
-
- template <typename Edge>
- bool operator()(const Edge& e) const {
- return m_edge_pred(e) && m_vertex_pred(source(e, *m_g));
- }
- EdgePredicate m_edge_pred;
- VertexPredicate m_vertex_pred;
- const Graph* m_g;
- };
-
- template <typename EdgePredicate, typename VertexPredicate, typename Graph>
- struct edge_predicate {
- edge_predicate() { }
- edge_predicate(EdgePredicate ep, VertexPredicate vp,
- const Graph& g)
- : m_edge_pred(ep), m_vertex_pred(vp), m_g(&g) { }
-
- template <typename Edge>
- bool operator()(const Edge& e) const {
- return m_edge_pred(e)
- && m_vertex_pred(source(e, *m_g)) && m_vertex_pred(target(e, *m_g));
- }
- EdgePredicate m_edge_pred;
- VertexPredicate m_vertex_pred;
- const Graph* m_g;
- };
-
- } // namespace detail
-
-
- //===========================================================================
- // Filtered Graph
-
- struct filtered_graph_tag { };
-
- // This base class is a stupid hack to change overload resolution
- // rules for the source and target functions so that they are a
- // worse match than the source and target functions defined for
- // pairs in graph_traits.hpp. I feel dirty. -JGS
- template <class G>
- struct filtered_graph_base {
- typedef graph_traits<G> Traits;
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
- filtered_graph_base(const G& g) : m_g(g) { }
- //protected:
- const G& m_g;
- };
-
- template <typename Graph,
- typename EdgePredicate,
- typename VertexPredicate = keep_all>
- class filtered_graph : public filtered_graph_base<Graph> {
- typedef filtered_graph_base<Graph> Base;
- typedef graph_traits<Graph> Traits;
- typedef filtered_graph self;
- public:
- typedef Graph graph_type;
- typedef detail::out_edge_predicate<EdgePredicate,
- VertexPredicate, self> OutEdgePred;
- typedef detail::in_edge_predicate<EdgePredicate,
- VertexPredicate, self> InEdgePred;
- typedef detail::edge_predicate<EdgePredicate,
- VertexPredicate, self> EdgePred;
-
- // Constructors
- filtered_graph(const Graph& g, EdgePredicate ep)
- : Base(g), m_edge_pred(ep) { }
-
- filtered_graph(const Graph& g, EdgePredicate ep, VertexPredicate vp)
- : Base(g), m_edge_pred(ep), m_vertex_pred(vp) { }
-
- // Graph requirements
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
- typedef typename Traits::directed_category directed_category;
- typedef typename Traits::edge_parallel_category edge_parallel_category;
- typedef typename Traits::traversal_category traversal_category;
-
- // IncidenceGraph requirements
- typedef filter_iterator<
- OutEdgePred, typename Traits::out_edge_iterator
- > out_edge_iterator;
-
- typedef typename Traits::degree_size_type degree_size_type;
-
- // AdjacencyGraph requirements
- typedef typename adjacency_iterator_generator<self,
- vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
-
- // BidirectionalGraph requirements
- typedef filter_iterator<
- InEdgePred, typename Traits::in_edge_iterator
- > in_edge_iterator;
-
- // VertexListGraph requirements
- typedef filter_iterator<
- VertexPredicate, typename Traits::vertex_iterator
- > vertex_iterator;
- typedef typename Traits::vertices_size_type vertices_size_type;
-
- // EdgeListGraph requirements
- typedef filter_iterator<
- EdgePred, typename Traits::edge_iterator
- > edge_iterator;
- typedef typename Traits::edges_size_type edges_size_type;
-
- typedef typename ::boost::edge_property_type<Graph>::type edge_property_type;
- typedef typename ::boost::vertex_property_type<Graph>::type vertex_property_type;
- typedef filtered_graph_tag graph_tag;
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- // Bundled properties support
- template<typename Descriptor>
- typename graph::detail::bundled_result<Graph, Descriptor>::type&
- operator[](Descriptor x)
- { return const_cast<Graph&>(this->m_g)[x]; }
-
- template<typename Descriptor>
- typename graph::detail::bundled_result<Graph, Descriptor>::type const&
- operator[](Descriptor x) const
- { return this->m_g[x]; }
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-
- //private:
- EdgePredicate m_edge_pred;
- VertexPredicate m_vertex_pred;
- };
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template<typename Graph, typename EdgePredicate, typename VertexPredicate>
- struct vertex_bundle_type<filtered_graph<Graph, EdgePredicate,
- VertexPredicate> >
- : vertex_bundle_type<Graph> { };
-
- template<typename Graph, typename EdgePredicate, typename VertexPredicate>
- struct edge_bundle_type<filtered_graph<Graph, EdgePredicate,
- VertexPredicate> >
- : edge_bundle_type<Graph> { };
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-
- //===========================================================================
- // Non-member functions for the Filtered Edge Graph
-
- // Helper functions
- template <typename Graph, typename EdgePredicate>
- inline filtered_graph<Graph, EdgePredicate>
- make_filtered_graph(Graph& g, EdgePredicate ep) {
- return filtered_graph<Graph, EdgePredicate>(g, ep);
- }
- template <typename Graph, typename EdgePredicate, typename VertexPredicate>
- inline filtered_graph<Graph, EdgePredicate, VertexPredicate>
- make_filtered_graph(Graph& g, EdgePredicate ep, VertexPredicate vp) {
- return filtered_graph<Graph, EdgePredicate, VertexPredicate>(g, ep, vp);
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::vertex_iterator,
- typename filtered_graph<G, EP, VP>::vertex_iterator>
- vertices(const filtered_graph<G, EP, VP>& g)
- {
- typedef filtered_graph<G, EP, VP> Graph;
- typename graph_traits<G>::vertex_iterator f, l;
- tie(f, l) = vertices(g.m_g);
- typedef typename Graph::vertex_iterator iter;
- return std::make_pair(iter(g.m_vertex_pred, f, l),
- iter(g.m_vertex_pred, l, l));
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::edge_iterator,
- typename filtered_graph<G, EP, VP>::edge_iterator>
- edges(const filtered_graph<G, EP, VP>& g)
- {
- typedef filtered_graph<G, EP, VP> Graph;
- typename Graph::EdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
- typename graph_traits<G>::edge_iterator f, l;
- tie(f, l) = edges(g.m_g);
- typedef typename Graph::edge_iterator iter;
- return std::make_pair(iter(pred, f, l), iter(pred, l, l));
- }
-
- // An alternative for num_vertices() and num_edges() would be to
- // count the number in the filtered graph. This is problematic
- // because of the interaction with the vertex indices... they would
- // no longer go from 0 to num_vertices(), which would cause trouble
- // for algorithms allocating property storage in an array. We could
- // try to create a mapping to new recalibrated indices, but I don't
- // see an efficient way to do this.
- //
- // However, the current solution is still unsatisfactory because
- // the following semantic constraints no longer hold:
- // tie(vi, viend) = vertices(g);
- // assert(std::distance(vi, viend) == num_vertices(g));
-
- template <typename G, typename EP, typename VP>
- typename filtered_graph<G, EP, VP>::vertices_size_type
- num_vertices(const filtered_graph<G, EP, VP>& g) {
- return num_vertices(g.m_g);
- }
-
- template <typename G, typename EP, typename VP>
- typename filtered_graph<G, EP, VP>::edges_size_type
- num_edges(const filtered_graph<G, EP, VP>& g) {
- return num_edges(g.m_g);
- }
-
- template <typename G>
- typename filtered_graph_base<G>::vertex_descriptor
- source(typename filtered_graph_base<G>::edge_descriptor e,
- const filtered_graph_base<G>& g)
- {
- return source(e, g.m_g);
- }
-
- template <typename G>
- typename filtered_graph_base<G>::vertex_descriptor
- target(typename filtered_graph_base<G>::edge_descriptor e,
- const filtered_graph_base<G>& g)
- {
- return target(e, g.m_g);
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::out_edge_iterator,
- typename filtered_graph<G, EP, VP>::out_edge_iterator>
- out_edges(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- const filtered_graph<G, EP, VP>& g)
- {
- typedef filtered_graph<G, EP, VP> Graph;
- typename Graph::OutEdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
- typedef typename Graph::out_edge_iterator iter;
- typename graph_traits<G>::out_edge_iterator f, l;
- tie(f, l) = out_edges(u, g.m_g);
- return std::make_pair(iter(pred, f, l), iter(pred, l, l));
- }
-
- template <typename G, typename EP, typename VP>
- typename filtered_graph<G, EP, VP>::degree_size_type
- out_degree(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- const filtered_graph<G, EP, VP>& g)
- {
- typename filtered_graph<G, EP, VP>::degree_size_type n = 0;
- typename filtered_graph<G, EP, VP>::out_edge_iterator f, l;
- for (tie(f, l) = out_edges(u, g); f != l; ++f)
- ++n;
- return n;
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::adjacency_iterator,
- typename filtered_graph<G, EP, VP>::adjacency_iterator>
- adjacent_vertices(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- const filtered_graph<G, EP, VP>& g)
- {
- typedef filtered_graph<G, EP, VP> Graph;
- typedef typename Graph::adjacency_iterator adjacency_iterator;
- typename Graph::out_edge_iterator f, l;
- tie(f, l) = out_edges(u, g);
- return std::make_pair(adjacency_iterator(f, const_cast<Graph*>(&g)),
- adjacency_iterator(l, const_cast<Graph*>(&g)));
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::in_edge_iterator,
- typename filtered_graph<G, EP, VP>::in_edge_iterator>
- in_edges(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- const filtered_graph<G, EP, VP>& g)
- {
- typedef filtered_graph<G, EP, VP> Graph;
- typename Graph::InEdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
- typedef typename Graph::in_edge_iterator iter;
- typename graph_traits<G>::in_edge_iterator f, l;
- tie(f, l) = in_edges(u, g.m_g);
- return std::make_pair(iter(pred, f, l), iter(pred, l, l));
- }
-
- template <typename G, typename EP, typename VP>
- typename filtered_graph<G, EP, VP>::degree_size_type
- in_degree(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- const filtered_graph<G, EP, VP>& g)
- {
- typename filtered_graph<G, EP, VP>::degree_size_type n = 0;
- typename filtered_graph<G, EP, VP>::in_edge_iterator f, l;
- for (tie(f, l) = in_edges(u, g); f != l; ++f)
- ++n;
- return n;
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::edge_descriptor, bool>
- edge(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- typename filtered_graph<G, EP, VP>::vertex_descriptor v,
- const filtered_graph<G, EP, VP>& g)
- {
- typename graph_traits<G>::edge_descriptor e;
- bool exists;
- tie(e, exists) = edge(u, v, g.m_g);
- return std::make_pair(e, exists && g.m_edge_pred(e));
- }
-
- template <typename G, typename EP, typename VP>
- std::pair<typename filtered_graph<G, EP, VP>::out_edge_iterator,
- typename filtered_graph<G, EP, VP>::out_edge_iterator>
- edge_range(typename filtered_graph<G, EP, VP>::vertex_descriptor u,
- typename filtered_graph<G, EP, VP>::vertex_descriptor v,
- const filtered_graph<G, EP, VP>& g)
- {
- typedef filtered_graph<G, EP, VP> Graph;
- typename Graph::OutEdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
- typedef typename Graph::out_edge_iterator iter;
- typename graph_traits<G>::out_edge_iterator f, l;
- tie(f, l) = edge_range(u, v, g.m_g);
- return std::make_pair(iter(pred, f, l), iter(pred, l, l));
- }
-
-
- //===========================================================================
- // Property map
-
- namespace detail {
- struct filtered_graph_property_selector {
- template <class FilteredGraph, class Property, class Tag>
- struct bind_ {
- typedef typename FilteredGraph::graph_type Graph;
- typedef property_map<Graph, Tag> Map;
- typedef typename Map::type type;
- typedef typename Map::const_type const_type;
- };
- };
- } // namespace detail
-
- template <>
- struct vertex_property_selector<filtered_graph_tag> {
- typedef detail::filtered_graph_property_selector type;
- };
- template <>
- struct edge_property_selector<filtered_graph_tag> {
- typedef detail::filtered_graph_property_selector type;
- };
-
- template <typename G, typename EP, typename VP, typename Property>
- typename property_map<G, Property>::type
- get(Property p, filtered_graph<G, EP, VP>& g)
- {
- return get(p, const_cast<G&>(g.m_g));
- }
-
- template <typename G, typename EP, typename VP,typename Property>
- typename property_map<G, Property>::const_type
- get(Property p, const filtered_graph<G, EP, VP>& g)
- {
- return get(p, (const G&)g.m_g);
- }
-
- template <typename G, typename EP, typename VP, typename Property,
- typename Key>
- typename property_map_value<G, Property>::type
- get(Property p, const filtered_graph<G, EP, VP>& g, const Key& k)
- {
- return get(p, (const G&)g.m_g, k);
- }
-
- template <typename G, typename EP, typename VP, typename Property,
- typename Key, typename Value>
- void
- put(Property p, const filtered_graph<G, EP, VP>& g, const Key& k,
- const Value& val)
- {
- put(p, const_cast<G&>(g.m_g), k, val);
- }
-
- //===========================================================================
- // Some filtered subgraph specializations
-
- template <typename Graph, typename Set>
- struct vertex_subset_filter {
- typedef filtered_graph<Graph, keep_all, is_in_subset<Set> > type;
- };
- template <typename Graph, typename Set>
- inline typename vertex_subset_filter<Graph, Set>::type
- make_vertex_subset_filter(Graph& g, const Set& s) {
- typedef typename vertex_subset_filter<Graph, Set>::type Filter;
- is_in_subset<Set> p(s);
- return Filter(g, keep_all(), p);
- }
-
- template <typename Graph, typename Set>
- struct vertex_subset_compliment_filter {
- typedef filtered_graph<Graph, keep_all, is_not_in_subset<Set> > type;
- };
- template <typename Graph, typename Set>
- inline typename vertex_subset_compliment_filter<Graph, Set>::type
- make_vertex_subset_compliment_filter(Graph& g, const Set& s) {
- typedef typename vertex_subset_compliment_filter<Graph, Set>::type Filter;
- is_not_in_subset<Set> p(s);
- return Filter(g, keep_all(), p);
- }
-
-
-} // namespace boost
-
-
-#endif // BOOST_FILTERED_GRAPH_HPP
+++ /dev/null
-// Copyright 2002 Rensselaer Polytechnic Institute
-
-// 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)
-
-// Authors: Lauren Foutz
-// Scott Hill
-
-/*
- This file implements the functions
-
- template <class VertexListGraph, class DistanceMatrix,
- class P, class T, class R>
- bool floyd_warshall_initialized_all_pairs_shortest_paths(
- const VertexListGraph& g, DistanceMatrix& d,
- const bgl_named_params<P, T, R>& params)
-
- AND
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class P, class T, class R>
- bool floyd_warshall_all_pairs_shortest_paths(
- const VertexAndEdgeListGraph& g, DistanceMatrix& d,
- const bgl_named_params<P, T, R>& params)
-*/
-
-
-#ifndef BOOST_GRAPH_FLOYD_WARSHALL_HPP
-#define BOOST_GRAPH_FLOYD_WARSHALL_HPP
-
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/relax.hpp>
-#include <algorithm> // for std::min and std::max
-
-namespace boost
-{
- namespace detail {
- template<typename VertexListGraph, typename DistanceMatrix,
- typename BinaryPredicate, typename BinaryFunction,
- typename Infinity, typename Zero>
- bool floyd_warshall_dispatch(const VertexListGraph& g,
- DistanceMatrix& d, const BinaryPredicate &compare,
- const BinaryFunction &combine, const Infinity& inf,
- const Zero& zero)
- {
- BOOST_USING_STD_MIN();
-
- typename graph_traits<VertexListGraph>::vertex_iterator
- i, lasti, j, lastj, k, lastk;
-
-
- for (tie(k, lastk) = vertices(g); k != lastk; k++)
- for (tie(i, lasti) = vertices(g); i != lasti; i++)
- for (tie(j, lastj) = vertices(g); j != lastj; j++)
- {
- d[*i][*j] = min BOOST_PREVENT_MACRO_SUBSTITUTION
- (d[*i][*j], combine(d[*i][*k], d[*k][*j]));
- }
-
-
- for (tie(i, lasti) = vertices(g); i != lasti; i++)
- if (compare(d[*i][*i], zero))
- return false;
- return true;
- }
- }
-
- template <typename VertexListGraph, typename DistanceMatrix,
- typename BinaryPredicate, typename BinaryFunction,
- typename Infinity, typename Zero>
- bool floyd_warshall_initialized_all_pairs_shortest_paths(
- const VertexListGraph& g, DistanceMatrix& d,
- const BinaryPredicate& compare,
- const BinaryFunction& combine, const Infinity& inf,
- const Zero& zero)
- {
- function_requires<VertexListGraphConcept<VertexListGraph> >();
-
- return detail::floyd_warshall_dispatch(g, d, compare, combine,
- inf, zero);
- }
-
-
-
- template <typename VertexAndEdgeListGraph, typename DistanceMatrix,
- typename WeightMap, typename BinaryPredicate,
- typename BinaryFunction, typename Infinity, typename Zero>
- bool floyd_warshall_all_pairs_shortest_paths(
- const VertexAndEdgeListGraph& g,
- DistanceMatrix& d, const WeightMap& w,
- const BinaryPredicate& compare, const BinaryFunction& combine,
- const Infinity& inf, const Zero& zero)
- {
- BOOST_USING_STD_MIN();
-
- function_requires<VertexListGraphConcept<VertexAndEdgeListGraph> >();
- function_requires<EdgeListGraphConcept<VertexAndEdgeListGraph> >();
- function_requires<IncidenceGraphConcept<VertexAndEdgeListGraph> >();
-
- typename graph_traits<VertexAndEdgeListGraph>::vertex_iterator
- firstv, lastv, firstv2, lastv2;
- typename graph_traits<VertexAndEdgeListGraph>::edge_iterator first, last;
-
-
- for(tie(firstv, lastv) = vertices(g); firstv != lastv; firstv++)
- for(tie(firstv2, lastv2) = vertices(g); firstv2 != lastv2; firstv2++)
- d[*firstv][*firstv2] = inf;
-
-
- for(tie(firstv, lastv) = vertices(g); firstv != lastv; firstv++)
- d[*firstv][*firstv] = 0;
-
-
- for(tie(first, last) = edges(g); first != last; first++)
- {
- if (d[source(*first, g)][target(*first, g)] != inf)
- d[source(*first, g)][target(*first, g)] =
- min BOOST_PREVENT_MACRO_SUBSTITUTION(get(w, *first),
- d[source(*first, g)][target(*first, g)]);
- else
- d[source(*first, g)][target(*first, g)] = get(w, *first);
- }
-
- bool is_undirected = is_same<typename
- graph_traits<VertexAndEdgeListGraph>::directed_category,
- undirected_tag>::value;
- if (is_undirected)
- {
- for(tie(first, last) = edges(g); first != last; first++)
- {
- if (d[target(*first, g)][source(*first, g)] != inf)
- d[target(*first, g)][source(*first, g)] =
- min BOOST_PREVENT_MACRO_SUBSTITUTION(get(w, *first),
- d[target(*first, g)][source(*first, g)]);
- else
- d[target(*first, g)][source(*first, g)] = get(w, *first);
- }
- }
-
-
- return detail::floyd_warshall_dispatch(g, d, compare, combine,
- inf, zero);
- }
-
-
- namespace detail {
- template <class VertexListGraph, class DistanceMatrix,
- class WeightMap, class P, class T, class R>
- bool floyd_warshall_init_dispatch(const VertexListGraph& g,
- DistanceMatrix& d, WeightMap w,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_traits<WeightMap>::value_type WM;
-
- return floyd_warshall_initialized_all_pairs_shortest_paths(g, d,
- choose_param(get_param(params, distance_compare_t()),
- std::less<WM>()),
- choose_param(get_param(params, distance_combine_t()),
- closed_plus<WM>()),
- choose_param(get_param(params, distance_inf_t()),
- std::numeric_limits<WM>::max BOOST_PREVENT_MACRO_SUBSTITUTION()),
- choose_param(get_param(params, distance_zero_t()),
- WM()));
- }
-
-
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class WeightMap, class P, class T, class R>
- bool floyd_warshall_noninit_dispatch(const VertexAndEdgeListGraph& g,
- DistanceMatrix& d, WeightMap w,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_traits<WeightMap>::value_type WM;
-
- return floyd_warshall_all_pairs_shortest_paths(g, d, w,
- choose_param(get_param(params, distance_compare_t()),
- std::less<WM>()),
- choose_param(get_param(params, distance_combine_t()),
- closed_plus<WM>()),
- choose_param(get_param(params, distance_inf_t()),
- std::numeric_limits<WM>::max BOOST_PREVENT_MACRO_SUBSTITUTION()),
- choose_param(get_param(params, distance_zero_t()),
- WM()));
- }
-
-
- } // namespace detail
-
-
-
- template <class VertexListGraph, class DistanceMatrix, class P,
- class T, class R>
- bool floyd_warshall_initialized_all_pairs_shortest_paths(
- const VertexListGraph& g, DistanceMatrix& d,
- const bgl_named_params<P, T, R>& params)
- {
- return detail::floyd_warshall_init_dispatch(g, d,
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- params);
- }
-
- template <class VertexListGraph, class DistanceMatrix>
- bool floyd_warshall_initialized_all_pairs_shortest_paths(
- const VertexListGraph& g, DistanceMatrix& d)
- {
- bgl_named_params<int,int> params(0);
- return detail::floyd_warshall_init_dispatch(g, d,
- get(edge_weight, g), params);
- }
-
-
-
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class P, class T, class R>
- bool floyd_warshall_all_pairs_shortest_paths(
- const VertexAndEdgeListGraph& g, DistanceMatrix& d,
- const bgl_named_params<P, T, R>& params)
- {
- return detail::floyd_warshall_noninit_dispatch(g, d,
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- params);
- }
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix>
- bool floyd_warshall_all_pairs_shortest_paths(
- const VertexAndEdgeListGraph& g, DistanceMatrix& d)
- {
- bgl_named_params<int,int> params(0);
- return detail::floyd_warshall_noninit_dispatch(g, d,
- get(edge_weight, g), params);
- }
-
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_FRUCHTERMAN_REINGOLD_FORCE_DIRECTED_LAYOUT_HPP
-#define BOOST_GRAPH_FRUCHTERMAN_REINGOLD_FORCE_DIRECTED_LAYOUT_HPP
-
-#include <cmath>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <boost/graph/simple_point.hpp>
-#include <vector>
-#include <list>
-#include <algorithm> // for std::min and std::max
-
-namespace boost {
-
-struct square_distance_attractive_force {
- template<typename Graph, typename T>
- T
- operator()(typename graph_traits<Graph>::edge_descriptor,
- T k,
- T d,
- const Graph&) const
- {
- return d * d / k;
- }
-};
-
-struct square_distance_repulsive_force {
- template<typename Graph, typename T>
- T
- operator()(typename graph_traits<Graph>::vertex_descriptor,
- typename graph_traits<Graph>::vertex_descriptor,
- T k,
- T d,
- const Graph&) const
- {
- return k * k / d;
- }
-};
-
-template<typename T>
-struct linear_cooling {
- typedef T result_type;
-
- linear_cooling(std::size_t iterations)
- : temp(T(iterations) / T(10)), step(0.1) { }
-
- linear_cooling(std::size_t iterations, T temp)
- : temp(temp), step(temp / T(iterations)) { }
-
- T operator()()
- {
- T old_temp = temp;
- temp -= step;
- if (temp < T(0)) temp = T(0);
- return old_temp;
- }
-
- private:
- T temp;
- T step;
-};
-
-struct all_force_pairs
-{
- template<typename Graph, typename ApplyForce >
- void operator()(const Graph& g, ApplyForce apply_force)
- {
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- vertex_iterator v, end;
- for (tie(v, end) = vertices(g); v != end; ++v) {
- vertex_iterator u = v;
- for (++u; u != end; ++u) {
- apply_force(*u, *v);
- apply_force(*v, *u);
- }
- }
- }
-};
-
-template<typename Dim, typename PositionMap>
-struct grid_force_pairs
-{
- template<typename Graph>
- explicit
- grid_force_pairs(Dim width, Dim height, PositionMap position, const Graph& g)
- : width(width), height(height), position(position)
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif // BOOST_NO_STDC_NAMESPACE
- two_k = Dim(2) * sqrt(width*height / num_vertices(g));
- }
-
- template<typename Graph, typename ApplyForce >
- void operator()(const Graph& g, ApplyForce apply_force)
- {
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef std::list<vertex_descriptor> bucket_t;
- typedef std::vector<bucket_t> buckets_t;
-
- std::size_t columns = std::size_t(width / two_k + Dim(1));
- std::size_t rows = std::size_t(height / two_k + Dim(1));
- buckets_t buckets(rows * columns);
- vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- std::size_t column = std::size_t((position[*v].x + width / 2) / two_k);
- std::size_t row = std::size_t((position[*v].y + height / 2) / two_k);
-
- if (column >= columns) column = columns - 1;
- if (row >= rows) row = rows - 1;
- buckets[row * columns + column].push_back(*v);
- }
-
- for (std::size_t row = 0; row < rows; ++row)
- for (std::size_t column = 0; column < columns; ++column) {
- bucket_t& bucket = buckets[row * columns + column];
- typedef typename bucket_t::iterator bucket_iterator;
- for (bucket_iterator u = bucket.begin(); u != bucket.end(); ++u) {
- // Repulse vertices in this bucket
- bucket_iterator v = u;
- for (++v; v != bucket.end(); ++v) {
- apply_force(*u, *v);
- apply_force(*v, *u);
- }
-
- std::size_t adj_start_row = row == 0? 0 : row - 1;
- std::size_t adj_end_row = row == rows - 1? row : row + 1;
- std::size_t adj_start_column = column == 0? 0 : column - 1;
- std::size_t adj_end_column = column == columns - 1? column : column + 1;
- for (std::size_t other_row = adj_start_row; other_row <= adj_end_row;
- ++other_row)
- for (std::size_t other_column = adj_start_column;
- other_column <= adj_end_column; ++other_column)
- if (other_row != row || other_column != column) {
- // Repulse vertices in this bucket
- bucket_t& other_bucket
- = buckets[other_row * columns + other_column];
- for (v = other_bucket.begin(); v != other_bucket.end(); ++v)
- apply_force(*u, *v);
- }
- }
- }
- }
-
- private:
- Dim width;
- Dim height;
- PositionMap position;
- Dim two_k;
-};
-
-template<typename Dim, typename PositionMap, typename Graph>
-inline grid_force_pairs<Dim, PositionMap>
-make_grid_force_pairs(Dim width, Dim height, const PositionMap& position,
- const Graph& g)
-{ return grid_force_pairs<Dim, PositionMap>(width, height, position, g); }
-
-template<typename Graph, typename PositionMap, typename Dim>
-void
-scale_graph(const Graph& g, PositionMap position,
- Dim left, Dim top, Dim right, Dim bottom)
-{
- if (num_vertices(g) == 0) return;
-
- if (bottom > top) {
- using std::swap;
- swap(bottom, top);
- }
-
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
-
- // Find min/max ranges
- Dim minX = position[*vertices(g).first].x, maxX = minX;
- Dim minY = position[*vertices(g).first].y, maxY = minY;
- vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
- BOOST_USING_STD_MIN();
- BOOST_USING_STD_MAX();
- minX = min BOOST_PREVENT_MACRO_SUBSTITUTION (minX, position[*vi].x);
- maxX = max BOOST_PREVENT_MACRO_SUBSTITUTION (maxX, position[*vi].x);
- minY = min BOOST_PREVENT_MACRO_SUBSTITUTION (minY, position[*vi].y);
- maxY = max BOOST_PREVENT_MACRO_SUBSTITUTION (maxY, position[*vi].y);
- }
-
- // Scale to bounding box provided
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
- position[*vi].x = ((position[*vi].x - minX) / (maxX - minX))
- * (right - left) + left;
- position[*vi].y = ((position[*vi].y - minY) / (maxY - minY))
- * (top - bottom) + bottom;
- }
-}
-
-namespace detail {
- template<typename PositionMap, typename DisplacementMap,
- typename RepulsiveForce, typename Dim, typename Graph>
- struct fr_apply_force
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
-
- fr_apply_force(const PositionMap& position,
- const DisplacementMap& displacement,
- RepulsiveForce repulsive_force, Dim k, const Graph& g)
- : position(position), displacement(displacement),
- repulsive_force(repulsive_force), k(k), g(g)
- { }
-
- void operator()(vertex_descriptor u, vertex_descriptor v)
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif // BOOST_NO_STDC_NAMESPACE
- if (u != v) {
- Dim delta_x = position[v].x - position[u].x;
- Dim delta_y = position[v].y - position[u].y;
- Dim dist = sqrt(delta_x * delta_x + delta_y * delta_y);
- Dim fr = repulsive_force(u, v, k, dist, g);
- displacement[v].x += delta_x / dist * fr;
- displacement[v].y += delta_y / dist * fr;
- }
- }
-
- private:
- PositionMap position;
- DisplacementMap displacement;
- RepulsiveForce repulsive_force;
- Dim k;
- const Graph& g;
- };
-
-} // end namespace detail
-
-template<typename Graph, typename PositionMap, typename Dim,
- typename AttractiveForce, typename RepulsiveForce,
- typename ForcePairs, typename Cooling, typename DisplacementMap>
-void
-fruchterman_reingold_force_directed_layout
- (const Graph& g,
- PositionMap position,
- Dim width,
- Dim height,
- AttractiveForce attractive_force,
- RepulsiveForce repulsive_force,
- ForcePairs force_pairs,
- Cooling cool,
- DisplacementMap displacement)
-{
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef typename graph_traits<Graph>::edge_iterator edge_iterator;
-
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif // BOOST_NO_STDC_NAMESPACE
-
- Dim area = width * height;
- // assume positions are initialized randomly
- Dim k = sqrt(area / num_vertices(g));
-
- detail::fr_apply_force<PositionMap, DisplacementMap,
- RepulsiveForce, Dim, Graph>
- apply_force(position, displacement, repulsive_force, k, g);
-
- Dim temp = cool();
- if (temp) do {
- // Calculate repulsive forces
- vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- displacement[*v].x = 0;
- displacement[*v].y = 0;
- }
- force_pairs(g, apply_force);
-
- // Calculate attractive forces
- edge_iterator e, e_end;
- for (tie(e, e_end) = edges(g); e != e_end; ++e) {
- vertex_descriptor v = source(*e, g);
- vertex_descriptor u = target(*e, g);
- Dim delta_x = position[v].x - position[u].x;
- Dim delta_y = position[v].y - position[u].y;
- Dim dist = sqrt(delta_x * delta_x + delta_y * delta_y);
- Dim fa = attractive_force(*e, k, dist, g);
-
- displacement[v].x -= delta_x / dist * fa;
- displacement[v].y -= delta_y / dist * fa;
- displacement[u].x += delta_x / dist * fa;
- displacement[u].y += delta_y / dist * fa;
- }
-
- // Update positions
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
- BOOST_USING_STD_MIN();
- BOOST_USING_STD_MAX();
- Dim disp_size = sqrt(displacement[*v].x * displacement[*v].x
- + displacement[*v].y * displacement[*v].y);
- position[*v].x += displacement[*v].x / disp_size
- * min BOOST_PREVENT_MACRO_SUBSTITUTION (disp_size, temp);
- position[*v].y += displacement[*v].y / disp_size
- * min BOOST_PREVENT_MACRO_SUBSTITUTION (disp_size, temp);
- position[*v].x = min BOOST_PREVENT_MACRO_SUBSTITUTION
- (width / 2,
- max BOOST_PREVENT_MACRO_SUBSTITUTION(-width / 2,
- position[*v].x));
- position[*v].y = min BOOST_PREVENT_MACRO_SUBSTITUTION
- (height / 2,
- max BOOST_PREVENT_MACRO_SUBSTITUTION(-height / 2,
- position[*v].y));
- }
- } while (temp = cool());
-}
-
-namespace detail {
- template<typename DisplacementMap>
- struct fr_force_directed_layout
- {
- template<typename Graph, typename PositionMap, typename Dim,
- typename AttractiveForce, typename RepulsiveForce,
- typename ForcePairs, typename Cooling,
- typename Param, typename Tag, typename Rest>
- static void
- run(const Graph& g,
- PositionMap position,
- Dim width,
- Dim height,
- AttractiveForce attractive_force,
- RepulsiveForce repulsive_force,
- ForcePairs force_pairs,
- Cooling cool,
- DisplacementMap displacement,
- const bgl_named_params<Param, Tag, Rest>&)
- {
- fruchterman_reingold_force_directed_layout
- (g, position, width, height, attractive_force, repulsive_force,
- force_pairs, cool, displacement);
- }
- };
-
- template<>
- struct fr_force_directed_layout<error_property_not_found>
- {
- template<typename Graph, typename PositionMap, typename Dim,
- typename AttractiveForce, typename RepulsiveForce,
- typename ForcePairs, typename Cooling,
- typename Param, typename Tag, typename Rest>
- static void
- run(const Graph& g,
- PositionMap position,
- Dim width,
- Dim height,
- AttractiveForce attractive_force,
- RepulsiveForce repulsive_force,
- ForcePairs force_pairs,
- Cooling cool,
- error_property_not_found,
- const bgl_named_params<Param, Tag, Rest>& params)
- {
- std::vector<simple_point<double> > displacements(num_vertices(g));
- fruchterman_reingold_force_directed_layout
- (g, position, width, height, attractive_force, repulsive_force,
- force_pairs, cool,
- make_iterator_property_map
- (displacements.begin(),
- choose_const_pmap(get_param(params, vertex_index), g,
- vertex_index),
- simple_point<double>()));
- }
- };
-
-} // end namespace detail
-
-template<typename Graph, typename PositionMap, typename Dim, typename Param,
- typename Tag, typename Rest>
-void
-fruchterman_reingold_force_directed_layout
- (const Graph& g,
- PositionMap position,
- Dim width,
- Dim height,
- const bgl_named_params<Param, Tag, Rest>& params)
-{
- typedef typename property_value<bgl_named_params<Param,Tag,Rest>,
- vertex_displacement_t>::type D;
-
- detail::fr_force_directed_layout<D>::run
- (g, position, width, height,
- choose_param(get_param(params, attractive_force_t()),
- square_distance_attractive_force()),
- choose_param(get_param(params, repulsive_force_t()),
- square_distance_repulsive_force()),
- choose_param(get_param(params, force_pairs_t()),
- make_grid_force_pairs(width, height, position, g)),
- choose_param(get_param(params, cooling_t()),
- linear_cooling<double>(100)),
- get_param(params, vertex_displacement_t()),
- params);
-}
-
-template<typename Graph, typename PositionMap, typename Dim>
-void
-fruchterman_reingold_force_directed_layout(const Graph& g,
- PositionMap position,
- Dim width,
- Dim height)
-{
- fruchterman_reingold_force_directed_layout
- (g, position, width, height,
- attractive_force(square_distance_attractive_force()));
-}
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_FRUCHTERMAN_REINGOLD_FORCE_DIRECTED_LAYOUT_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_ARCHETYPES_HPP
-#define BOOST_GRAPH_ARCHETYPES_HPP
-
-#include <boost/property_map.hpp>
-#include <boost/concept_archetype.hpp>
-
-namespace boost { // should use a different namespace for this
-
- namespace detail {
- struct null_graph_archetype : public null_archetype<> {
- struct traversal_category { };
- };
- }
-
- //===========================================================================
- template <typename Vertex, typename Directed, typename ParallelCategory,
- typename Base = detail::null_graph_archetype >
- struct incidence_graph_archetype : public Base
- {
- typedef typename Base::traversal_category base_trav_cat;
- struct traversal_category
- : public incidence_graph_tag, public base_trav_cat { };
-#if 0
- typedef immutable_graph_tag mutability_category;
-#endif
- typedef Vertex vertex_descriptor;
- typedef unsigned int degree_size_type;
- typedef unsigned int vertices_size_type;
- typedef unsigned int edges_size_type;
- struct edge_descriptor {
- edge_descriptor() { }
- edge_descriptor(const detail::dummy_constructor&) { }
- bool operator==(const edge_descriptor&) const { return false; }
- bool operator!=(const edge_descriptor&) const { return false; }
- };
- typedef input_iterator_archetype<edge_descriptor> out_edge_iterator;
-
- typedef Directed directed_category;
- typedef ParallelCategory edge_parallel_category;
-
- typedef void adjacency_iterator;
- typedef void in_edge_iterator;
- typedef void vertex_iterator;
- typedef void edge_iterator;
- };
- template <typename V, typename D, typename P, typename B>
- V source(const typename incidence_graph_archetype<V,D,P,B>::edge_descriptor&,
- const incidence_graph_archetype<V,D,P,B>& )
- {
- return V(static_object<detail::dummy_constructor>::get());
- }
- template <typename V, typename D, typename P, typename B>
- V target(const typename incidence_graph_archetype<V,D,P,B>::edge_descriptor&,
- const incidence_graph_archetype<V,D,P,B>& )
- {
- return V(static_object<detail::dummy_constructor>::get());
- }
-
- template <typename V, typename D, typename P, typename B>
- std::pair<typename incidence_graph_archetype<V,D,P,B>::out_edge_iterator,
- typename incidence_graph_archetype<V,D,P,B>::out_edge_iterator>
- out_edges(const V&, const incidence_graph_archetype<V,D,P,B>& )
- {
- typedef typename incidence_graph_archetype<V,D,P,B>::out_edge_iterator Iter;
- return std::make_pair(Iter(), Iter());
- }
-
- template <typename V, typename D, typename P, typename B>
- typename incidence_graph_archetype<V,D,P,B>::degree_size_type
- out_degree(const V&, const incidence_graph_archetype<V,D,P,B>& )
- {
- return 0;
- }
-
- //===========================================================================
- template <typename Vertex, typename Directed, typename ParallelCategory,
- typename Base = detail::null_graph_archetype >
- struct adjacency_graph_archetype : public Base
- {
- typedef typename Base::traversal_category base_trav_cat;
- struct traversal_category
- : public adjacency_graph_tag, public base_trav_cat { };
- typedef Vertex vertex_descriptor;
- typedef unsigned int degree_size_type;
- typedef unsigned int vertices_size_type;
- typedef unsigned int edges_size_type;
- typedef void edge_descriptor;
- typedef input_iterator_archetype<Vertex> adjacency_iterator;
-
- typedef Directed directed_category;
- typedef ParallelCategory edge_parallel_category;
-
- typedef void in_edge_iterator;
- typedef void out_edge_iterator;
- typedef void vertex_iterator;
- typedef void edge_iterator;
- };
-
- template <typename V, typename D, typename P, typename B>
- std::pair<typename adjacency_graph_archetype<V,D,P,B>::adjacency_iterator,
- typename adjacency_graph_archetype<V,D,P,B>::adjacency_iterator>
- adjacent_vertices(const V&, const adjacency_graph_archetype<V,D,P,B>& )
- {
- typedef typename adjacency_graph_archetype<V,D,P,B>::adjacency_iterator Iter;
- return std::make_pair(Iter(), Iter());
- }
-
- template <typename V, typename D, typename P, typename B>
- typename adjacency_graph_archetype<V,D,P,B>::degree_size_type
- out_degree(const V&, const adjacency_graph_archetype<V,D,P,B>& )
- {
- return 0;
- }
-
- //===========================================================================
- template <typename Vertex, typename Directed, typename ParallelCategory,
- typename Base = detail::null_graph_archetype >
- struct vertex_list_graph_archetype : public Base
- {
- typedef incidence_graph_archetype<Vertex, Directed, ParallelCategory>
- Incidence;
- typedef adjacency_graph_archetype<Vertex, Directed, ParallelCategory>
- Adjacency;
-
- typedef typename Base::traversal_category base_trav_cat;
- struct traversal_category
- : public vertex_list_graph_tag, public base_trav_cat { };
-#if 0
- typedef immutable_graph_tag mutability_category;
-#endif
- typedef Vertex vertex_descriptor;
- typedef unsigned int degree_size_type;
- typedef typename Incidence::edge_descriptor edge_descriptor;
- typedef typename Incidence::out_edge_iterator out_edge_iterator;
- typedef typename Adjacency::adjacency_iterator adjacency_iterator;
-
- typedef input_iterator_archetype<Vertex> vertex_iterator;
- typedef unsigned int vertices_size_type;
- typedef unsigned int edges_size_type;
-
- typedef Directed directed_category;
- typedef ParallelCategory edge_parallel_category;
-
- typedef void in_edge_iterator;
- typedef void edge_iterator;
- };
-
- template <typename V, typename D, typename P, typename B>
- std::pair<typename vertex_list_graph_archetype<V,D,P,B>::vertex_iterator,
- typename vertex_list_graph_archetype<V,D,P,B>::vertex_iterator>
- vertices(const vertex_list_graph_archetype<V,D,P,B>& )
- {
- typedef typename vertex_list_graph_archetype<V,D,P,B>::vertex_iterator Iter;
- return std::make_pair(Iter(), Iter());
- }
-
- template <typename V, typename D, typename P, typename B>
- typename vertex_list_graph_archetype<V,D,P,B>::vertices_size_type
- num_vertices(const vertex_list_graph_archetype<V,D,P,B>& )
- {
- return 0;
- }
-
- // ambiguously inherited from incidence graph and adjacency graph
- template <typename V, typename D, typename P, typename B>
- typename vertex_list_graph_archetype<V,D,P,B>::degree_size_type
- out_degree(const V&, const vertex_list_graph_archetype<V,D,P,B>& )
- {
- return 0;
- }
-
- //===========================================================================
-
- struct property_graph_archetype_tag { };
-
- template <typename GraphArchetype, typename Property, typename ValueArch>
- struct property_graph_archetype : public GraphArchetype
- {
- typedef property_graph_archetype_tag graph_tag;
- typedef ValueArch vertex_property_type;
- typedef ValueArch edge_property_type;
- };
-
- struct choose_edge_property_map_archetype {
- template <typename Graph, typename Property, typename Tag>
- struct bind_ {
- typedef mutable_lvalue_property_map_archetype
- <typename Graph::edge_descriptor, Property> type;
- typedef lvalue_property_map_archetype
- <typename Graph::edge_descriptor, Property> const_type;
- };
- };
- template <>
- struct edge_property_selector<property_graph_archetype_tag> {
- typedef choose_edge_property_map_archetype type;
- };
-
- struct choose_vertex_property_map_archetype {
- template <typename Graph, typename Property, typename Tag>
- struct bind_ {
- typedef mutable_lvalue_property_map_archetype
- <typename Graph::vertex_descriptor, Property> type;
- typedef lvalue_property_map_archetype
- <typename Graph::vertex_descriptor, Property> const_type;
- };
- };
-
- template <>
- struct vertex_property_selector<property_graph_archetype_tag> {
- typedef choose_vertex_property_map_archetype type;
- };
-
- template <typename G, typename P, typename V>
- typename property_map<property_graph_archetype<G, P, V>, P>::type
- get(P, property_graph_archetype<G, P, V>&) {
- typename property_map<property_graph_archetype<G, P, V>, P>::type pmap;
- return pmap;
- }
-
- template <typename G, typename P, typename V>
- typename property_map<property_graph_archetype<G, P, V>, P>::const_type
- get(P, const property_graph_archetype<G, P, V>&) {
- typename property_map<property_graph_archetype<G, P, V>, P>::const_type pmap;
- return pmap;
- }
-
- template <typename G, typename P, typename K, typename V>
- typename property_traits<typename property_map<property_graph_archetype<G, P, V>, P>::const_type>::value_type
- get(P p, const property_graph_archetype<G, P, V>& g, K k) {
- return get( get(p, g), k);
- }
-
- template <typename G, typename P, typename V, typename Key>
- void
- put(P p, property_graph_archetype<G, P, V>& g,
- const Key& key, const V& value)
- {
- typedef typename boost::property_map<property_graph_archetype<G, P, V>, P>::type Map;
- Map pmap = get(p, g);
- put(pmap, key, value);
- }
-
- struct color_value_archetype {
- color_value_archetype() { }
- color_value_archetype(detail::dummy_constructor) { }
- bool operator==(const color_value_archetype& ) const { return true; }
- bool operator!=(const color_value_archetype& ) const { return true; }
- };
- template <>
- struct color_traits<color_value_archetype> {
- static color_value_archetype white()
- {
- return color_value_archetype
- (static_object<detail::dummy_constructor>::get());
- }
- static color_value_archetype gray()
- {
- return color_value_archetype
- (static_object<detail::dummy_constructor>::get());
- }
- static color_value_archetype black()
- {
- return color_value_archetype
- (static_object<detail::dummy_constructor>::get());
- }
- };
-
- template <typename T>
- class buffer_archetype {
- public:
- void push(const T&) {}
- void pop() {}
- T& top() { return static_object<T>::get(); }
- const T& top() const { return static_object<T>::get(); }
- bool empty() const { return true; }
- };
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_ARCHETYPES_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_GRAPH_AS_TREE_HPP
-#define BOOST_GRAPH_GRAPH_AS_TREE_HPP
-
-#include <vector>
-#include <boost/config.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/tree_traits.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/graph/visitors.hpp>
-
-namespace boost {
-
- template <class Graph, class Node, class ChIt, class Derived>
- class graph_as_tree_base
- {
- typedef Derived Tree;
- public:
- typedef Node node_descriptor;
- typedef ChIt children_iterator;
-
- graph_as_tree_base(Graph& g, Node root) : _g(g), _root(root) { }
-
- friend Node root(const Tree& t) { return t._root; }
-
- template <class N>
- friend std::pair<ChIt,ChIt>
- children(N n, const Tree& t) { return adjacent_vertices(n, t._g); }
-
- template<class N>
- friend Node parent(N n, const Tree& t) {
- return boost::get(t.parent_pa(), n);
- }
-
- Graph& _g;
- Node _root;
- };
-
- struct graph_as_tree_tag { };
-
- template <class Graph, class ParentMap
- , class Node
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- = typename graph_traits<Graph>::vertex_descriptor
-#endif
- , class ChIt
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- = typename graph_traits<Graph>::adjacency_iterator
-#endif
- >
- class graph_as_tree
- : public graph_as_tree_base<Graph, Node, ChIt,
- graph_as_tree<Graph,ParentMap,Node,ChIt> >
- {
- typedef graph_as_tree self;
- typedef graph_as_tree_base<Graph, Node, ChIt, self> super;
- public:
- graph_as_tree(Graph& g, Node root) : super(g, root) { }
-
- graph_as_tree(Graph& g, Node root, ParentMap p) : super(g, root), _p(p) {
- breadth_first_search(g, root,
- visitor(make_bfs_visitor
- (record_predecessors(p, boost::on_tree_edge()))));
- }
- ParentMap parent_pa() const { return _p; }
- typedef graph_as_tree_tag graph_tag; // for property_map
- protected:
- ParentMap _p;
- };
-
-
- namespace detail {
-
- struct graph_as_tree_vertex_property_selector {
- template <typename GraphAsTree, typename Property, typename Tag>
- struct bind_ {
- typedef typename GraphAsTree::base_type Graph;
- typedef property_map<Graph, Tag> PMap;
- typedef typename PMap::type type;
- typedef typename PMap::const_type const_type;
- };
- };
-
- struct graph_as_tree_edge_property_selector {
- template <typename GraphAsTree, typename Property, typename Tag>
- struct bind_ {
- typedef typename GraphAsTree::base_type Graph;
- typedef property_map<Graph, Tag> PMap;
- typedef typename PMap::type type;
- typedef typename PMap::const_type const_type;
- };
- };
-
- } // namespace detail
-
- template <>
- struct vertex_property_selector<graph_as_tree_tag> {
- typedef detail::graph_as_tree_vertex_property_selector type;
- };
-
- template <>
- struct edge_property_selector<graph_as_tree_tag> {
- typedef detail::graph_as_tree_edge_property_selector type;
- };
-
- template <typename Graph, typename P, typename N, typename C,
- typename Property>
- typename property_map<Graph, Property>::type
- get(Property p, graph_as_tree<Graph,P,N,C>& g)
- {
- return get(p, g._g);
- }
-
- template <typename Graph, typename P, typename N, typename C,
- typename Property>
- typename property_map<Graph, Property>::const_type
- get(Property p, const graph_as_tree<Graph,P,N,C>& g)
- {
- const Graph& gref = g._g; // in case GRef is non-const
- return get(p, gref);
- }
-
- template <typename Graph, typename P, typename N, typename C,
- typename Property, typename Key>
- typename property_traits<
- typename property_map<Graph, Property>::const_type
- >::value_type
- get(Property p, const graph_as_tree<Graph,P,N,C>& g, const Key& k)
- {
- return get(p, g._g, k);
- }
-
- template <typename Graph, typename P, typename N, typename C,
- typename Property, typename Key, typename Value>
- void
- put(Property p, const graph_as_tree<Graph,P,N,C>& g, const Key& k,
- const Value& val)
- {
- put(p, g._g, k, val);
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_GRAPH_AS_TREE_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_CONCEPTS_HPP
-#define BOOST_GRAPH_CONCEPTS_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/concept_check.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost {
-
- template <class T>
- struct MultiPassInputIteratorConcept {
- void constraints() {
- function_requires< InputIteratorConcept<T> >();
- }
- };
-
- template <class G>
- struct GraphConcept
- {
- typedef typename graph_traits<G>::vertex_descriptor vertex_descriptor;
- typedef typename graph_traits<G>::directed_category directed_category;
- typedef typename graph_traits<G>::edge_parallel_category
- edge_parallel_category;
- typedef typename graph_traits<G>::traversal_category
- traversal_category;
- void constraints() {
- function_requires< DefaultConstructibleConcept<vertex_descriptor> >();
- function_requires< EqualityComparableConcept<vertex_descriptor> >();
- function_requires< AssignableConcept<vertex_descriptor> >();
- }
- G g;
- };
-
- template <class G>
- struct IncidenceGraphConcept
- {
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<G>::out_edge_iterator
- out_edge_iterator;
- typedef typename graph_traits<G>::traversal_category
- traversal_category;
- void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<out_edge_iterator> >();
- function_requires< DefaultConstructibleConcept<edge_descriptor> >();
- function_requires< EqualityComparableConcept<edge_descriptor> >();
- function_requires< AssignableConcept<edge_descriptor> >();
- function_requires< ConvertibleConcept<traversal_category,
- incidence_graph_tag> >();
-
- p = out_edges(u, g);
- n = out_degree(u, g);
- e = *p.first;
- u = source(e, g);
- v = target(e, g);
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
- p = out_edges(u, cg);
- n = out_degree(u, cg);
- e = *p.first;
- u = source(e, cg);
- v = target(e, cg);
- }
- std::pair<out_edge_iterator, out_edge_iterator> p;
- typename graph_traits<G>::vertex_descriptor u, v;
- typename graph_traits<G>::edge_descriptor e;
- typename graph_traits<G>::degree_size_type n;
- G g;
- };
-
- template <class G>
- struct BidirectionalGraphConcept
- {
- typedef typename graph_traits<G>::in_edge_iterator
- in_edge_iterator;
- typedef typename graph_traits<G>::traversal_category
- traversal_category;
- void constraints() {
- function_requires< IncidenceGraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<in_edge_iterator> >();
- function_requires< ConvertibleConcept<traversal_category,
- bidirectional_graph_tag> >();
-
- p = in_edges(v, g);
- n = in_degree(v, g);
- e = *p.first;
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
- p = in_edges(v, cg);
- n = in_degree(v, cg);
- e = *p.first;
- }
- std::pair<in_edge_iterator, in_edge_iterator> p;
- typename graph_traits<G>::vertex_descriptor v;
- typename graph_traits<G>::edge_descriptor e;
- typename graph_traits<G>::degree_size_type n;
- G g;
- };
-
- template <class G>
- struct AdjacencyGraphConcept
- {
- typedef typename graph_traits<G>::adjacency_iterator
- adjacency_iterator;
- typedef typename graph_traits<G>::traversal_category
- traversal_category;
- void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<adjacency_iterator> >();
- function_requires< ConvertibleConcept<traversal_category,
- adjacency_graph_tag> >();
-
- p = adjacent_vertices(v, g);
- v = *p.first;
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
- p = adjacent_vertices(v, cg);
- }
- std::pair<adjacency_iterator,adjacency_iterator> p;
- typename graph_traits<G>::vertex_descriptor v;
- G g;
- };
-
-// dwa 2003/7/11 -- This clearly shouldn't be necessary, but if
-// you want to use vector_as_graph, it is! I'm sure the graph
-// library leaves these out all over the place. Probably a
-// redesign involving specializing a template with a static
-// member function is in order :(
-//
-// It is needed in order to allow us to write using boost::vertices as
-// needed for ADL when using vector_as_graph below.
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) \
- && !BOOST_WORKAROUND(__GNUC__, <= 2) \
- && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-# define BOOST_VECTOR_AS_GRAPH_GRAPH_ADL_HACK
-#endif
-
-#ifdef BOOST_VECTOR_AS_GRAPH_GRAPH_ADL_HACK
-template <class T>
-typename T::ThereReallyIsNoMemberByThisNameInT vertices(T const&);
-#endif
-
- template <class G>
- struct VertexListGraphConcept
- {
- typedef typename graph_traits<G>::vertex_iterator vertex_iterator;
- typedef typename graph_traits<G>::vertices_size_type vertices_size_type;
- typedef typename graph_traits<G>::traversal_category
- traversal_category;
- void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<vertex_iterator> >();
- function_requires< ConvertibleConcept<traversal_category,
- vertex_list_graph_tag> >();
-
-#ifdef BOOST_VECTOR_AS_GRAPH_GRAPH_ADL_HACK
- // dwa 2003/7/11 -- This clearly shouldn't be necessary, but if
- // you want to use vector_as_graph, it is! I'm sure the graph
- // library leaves these out all over the place. Probably a
- // redesign involving specializing a template with a static
- // member function is in order :(
- using boost::vertices;
-#endif
- p = vertices(g);
- v = *p.first;
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
-#ifdef BOOST_VECTOR_AS_GRAPH_GRAPH_ADL_HACK
- // dwa 2003/7/11 -- This clearly shouldn't be necessary, but if
- // you want to use vector_as_graph, it is! I'm sure the graph
- // library leaves these out all over the place. Probably a
- // redesign involving specializing a template with a static
- // member function is in order :(
- using boost::vertices;
-#endif
-
- p = vertices(cg);
- v = *p.first;
- V = num_vertices(cg);
- }
- std::pair<vertex_iterator,vertex_iterator> p;
- typename graph_traits<G>::vertex_descriptor v;
- G g;
- vertices_size_type V;
- };
-
- template <class G>
- struct EdgeListGraphConcept
- {
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<G>::edge_iterator edge_iterator;
- typedef typename graph_traits<G>::edges_size_type edges_size_type;
- typedef typename graph_traits<G>::traversal_category
- traversal_category;
- void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<edge_iterator> >();
- function_requires< DefaultConstructibleConcept<edge_descriptor> >();
- function_requires< EqualityComparableConcept<edge_descriptor> >();
- function_requires< AssignableConcept<edge_descriptor> >();
- function_requires< ConvertibleConcept<traversal_category,
- edge_list_graph_tag> >();
-
- p = edges(g);
- e = *p.first;
- u = source(e, g);
- v = target(e, g);
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
- p = edges(cg);
- E = num_edges(cg);
- e = *p.first;
- u = source(e, cg);
- v = target(e, cg);
- }
- std::pair<edge_iterator,edge_iterator> p;
- typename graph_traits<G>::vertex_descriptor u, v;
- typename graph_traits<G>::edge_descriptor e;
- edges_size_type E;
- G g;
- };
-
- template <class G>
- struct VertexAndEdgeListGraphConcept
- {
- void constraints() {
- function_requires< VertexListGraphConcept<G> >();
- function_requires< EdgeListGraphConcept<G> >();
- }
- };
-
- // Where to put the requirement for this constructor?
- // G g(n_vertices);
- // Not in mutable graph, then LEDA graph's can't be models of
- // MutableGraph.
-
- template <class G>
- struct EdgeMutableGraphConcept
- {
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- void constraints() {
- p = add_edge(u, v, g);
- remove_edge(u, v, g);
- remove_edge(e, g);
- clear_vertex(v, g);
- }
- G g;
- edge_descriptor e;
- std::pair<edge_descriptor, bool> p;
- typename graph_traits<G>::vertex_descriptor u, v;
- };
-
- template <class G>
- struct VertexMutableGraphConcept
- {
- void constraints() {
- v = add_vertex(g);
- remove_vertex(v, g);
- }
- G g;
- typename graph_traits<G>::vertex_descriptor u, v;
- };
-
- template <class G>
- struct MutableGraphConcept
- {
- void constraints() {
- function_requires< EdgeMutableGraphConcept<G> >();
- function_requires< VertexMutableGraphConcept<G> >();
- }
- };
-
- template <class edge_descriptor>
- struct dummy_edge_predicate {
- bool operator()(const edge_descriptor&) const {
- return false;
- }
- };
-
- template <class G>
- struct MutableIncidenceGraphConcept
- {
- void constraints() {
- function_requires< MutableGraphConcept<G> >();
- remove_edge(iter, g);
- remove_out_edge_if(u, p, g);
- }
- G g;
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- dummy_edge_predicate<edge_descriptor> p;
- typename boost::graph_traits<G>::vertex_descriptor u;
- typename boost::graph_traits<G>::out_edge_iterator iter;
- };
-
- template <class G>
- struct MutableBidirectionalGraphConcept
- {
- void constraints() {
- function_requires< MutableIncidenceGraphConcept<G> >();
- remove_in_edge_if(u, p, g);
- }
- G g;
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- dummy_edge_predicate<edge_descriptor> p;
- typename boost::graph_traits<G>::vertex_descriptor u;
- };
-
- template <class G>
- struct MutableEdgeListGraphConcept
- {
- void constraints() {
- function_requires< EdgeMutableGraphConcept<G> >();
- remove_edge_if(p, g);
- }
- G g;
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- dummy_edge_predicate<edge_descriptor> p;
- };
-
- template <class G>
- struct VertexMutablePropertyGraphConcept
- {
- void constraints() {
- function_requires< VertexMutableGraphConcept<G> >();
- v = add_vertex(vp, g);
- }
- G g;
- typename graph_traits<G>::vertex_descriptor v;
- typename vertex_property<G>::type vp;
- };
-
- template <class G>
- struct EdgeMutablePropertyGraphConcept
- {
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- void constraints() {
- function_requires< EdgeMutableGraphConcept<G> >();
- p = add_edge(u, v, ep, g);
- }
- G g;
- std::pair<edge_descriptor, bool> p;
- typename graph_traits<G>::vertex_descriptor u, v;
- typename edge_property<G>::type ep;
- };
-
- template <class G>
- struct AdjacencyMatrixConcept
- {
- typedef typename graph_traits<G>::edge_descriptor edge_descriptor;
- void constraints() {
- function_requires< GraphConcept<G> >();
-
- p = edge(u, v, g);
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
- p = edge(u, v, cg);
- }
- typename graph_traits<G>::vertex_descriptor u, v;
- std::pair<edge_descriptor, bool> p;
- G g;
- };
-
- template <class G, class X, class Property>
- struct ReadablePropertyGraphConcept
- {
- typedef typename property_map<G, Property>::const_type const_Map;
- void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< ReadablePropertyMapConcept<const_Map, X> >();
-
- const_constraints(g);
- }
- void const_constraints(const G& cg) {
- const_Map pmap = get(Property(), cg);
- pval = get(Property(), cg, x);
- ignore_unused_variable_warning(pmap);
- }
- G g;
- X x;
- typename property_traits<const_Map>::value_type pval;
- };
-
- template <class G, class X, class Property>
- struct PropertyGraphConcept
- {
- typedef typename property_map<G, Property>::type Map;
- void constraints() {
- function_requires< ReadablePropertyGraphConcept<G, X, Property> >();
- function_requires< ReadWritePropertyMapConcept<Map, X> >();
-
- Map pmap = get(Property(), g);
- pval = get(Property(), g, x);
- put(Property(), g, x, pval);
- ignore_unused_variable_warning(pmap);
- }
- G g;
- X x;
- typename property_traits<Map>::value_type pval;
- };
-
- template <class G, class X, class Property>
- struct LvaluePropertyGraphConcept
- {
- typedef typename property_map<G, Property>::type Map;
- typedef typename property_map<G, Property>::const_type const_Map;
- void constraints() {
- function_requires< ReadablePropertyGraphConcept<G, X, Property> >();
- function_requires< LvaluePropertyMapConcept<const_Map, X> >();
-
- pval = get(Property(), g, x);
- put(Property(), g, x, pval);
- }
- G g;
- X x;
- typename property_traits<Map>::value_type pval;
- };
-
- // This needs to move out of the graph library
- template <class B>
- struct BufferConcept
- {
- void constraints() {
- b.push(t);
- b.pop();
- typename B::value_type& v = b.top();
- const_constraints(b);
- ignore_unused_variable_warning(v);
- }
- void const_constraints(const B& cb) {
- const typename B::value_type& v = cb.top();
- n = cb.size();
- bool e = cb.empty();
- ignore_unused_variable_warning(v);
- ignore_unused_variable_warning(e);
- }
- typename B::size_type n;
- typename B::value_type t;
- B b;
- };
-
- template <class C>
- struct ColorValueConcept
- {
- void constraints() {
- function_requires< EqualityComparableConcept<C> >();
- function_requires< DefaultConstructibleConcept<C> >();
-
- c = color_traits<C>::white();
- c = color_traits<C>::gray();
- c = color_traits<C>::black();
- }
- C c;
- };
-
- template <class M, class I, class V>
- struct BasicMatrixConcept
- {
- void constraints() {
- V& elt = A[i][j];
- const_constraints(A);
- ignore_unused_variable_warning(elt);
- }
- void const_constraints(const M& cA) {
- const V& elt = cA[i][j];
- ignore_unused_variable_warning(elt);
- }
- M A;
- I i, j;
- };
-
-} // namespace boost
-
-#endif /* BOOST_GRAPH_CONCEPTS_H */
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_SELECTORS_HPP
-#define BOOST_GRAPH_SELECTORS_HPP
-
-namespace boost {
-
- //===========================================================================
- // Selectors for the Directed template parameter of adjacency_list
- // and adjacency_matrix.
-
- struct directedS { enum { is_directed = true, is_bidir = false };
- typedef true_type is_directed_t;
- typedef false_type is_bidir_t;
- };
- struct undirectedS {
- enum { is_directed = false, is_bidir = false };
- typedef false_type is_directed_t;
- typedef false_type is_bidir_t;
- };
- struct bidirectionalS {
- enum { is_directed = true, is_bidir = true };
- typedef true_type is_directed_t;
- typedef true_type is_bidir_t;
- };
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_SELECTORS_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_TEST_HPP
-#define BOOST_GRAPH_TEST_HPP
-
-#include <vector>
-#include <boost/test/minimal.hpp>
-#include <boost/graph/filtered_graph.hpp>
-#include <boost/graph/iteration_macros.hpp>
-#include <boost/graph/isomorphism.hpp>
-#include <boost/graph/copy.hpp>
-#include <boost/graph/graph_utility.hpp> // for connects
-
-
-// UNDER CONSTRUCTION
-
-namespace boost {
-
- template <typename Graph>
- struct graph_test
- {
-
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename graph_traits<Graph>::edge_descriptor edge_t;
- typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
- typedef typename graph_traits<Graph>::degree_size_type deg_size_t;
- typedef typename graph_traits<Graph>::edges_size_type e_size_t;
- typedef typename graph_traits<Graph>::out_edge_iterator out_edge_iter;
- typedef typename property_map<Graph, vertex_index_t>::type index_map_t;
- typedef iterator_property_map<typename std::vector<vertex_t>::iterator,
- index_map_t,vertex_t,vertex_t&> IsoMap;
-
- struct ignore_vertex {
- ignore_vertex() { }
- ignore_vertex(vertex_t v) : v(v) { }
- bool operator()(vertex_t x) const { return x != v; }
- vertex_t v;
- };
- struct ignore_edge {
- ignore_edge() { }
- ignore_edge(edge_t e) : e(e) { }
- bool operator()(edge_t x) const { return x != e; }
- edge_t e;
- };
- struct ignore_edges {
- ignore_edges(vertex_t s, vertex_t t, const Graph& g)
- : s(s), t(t), g(g) { }
- bool operator()(edge_t x) const {
- return !(source(x, g) == s && target(x, g) == t);
- }
- vertex_t s; vertex_t t; const Graph& g;
- };
-
- //=========================================================================
- // Traversal Operations
-
- void test_incidence_graph
- (const std::vector<vertex_t>& vertex_set,
- const std::vector< std::pair<vertex_t, vertex_t> >& edge_set,
- const Graph& g)
- {
- typedef typename std::vector<vertex_t>::const_iterator vertex_iter;
- typedef typename std::vector< std::pair<vertex_t, vertex_t> >
- ::const_iterator edge_iter;
- typedef typename graph_traits<Graph>::out_edge_iterator out_edge_iter;
-
- for (vertex_iter ui = vertex_set.begin(); ui != vertex_set.end(); ++ui) {
- vertex_t u = *ui;
- std::vector<vertex_t> adj;
- for (edge_iter e = edge_set.begin(); e != edge_set.end(); ++e)
- if (e->first == u)
- adj.push_back(e->second);
-
- std::pair<out_edge_iter, out_edge_iter> p = out_edges(u, g);
- BOOST_CHECK(out_degree(u, g) == adj.size());
- BOOST_CHECK(deg_size_t(std::distance(p.first, p.second))
- == out_degree(u, g));
- for (; p.first != p.second; ++p.first) {
- edge_t e = *p.first;
- BOOST_CHECK(source(e, g) == u);
- BOOST_CHECK(contains(adj, target(e, g)) == true);
- }
- }
- }
-
- void test_bidirectional_graph
- (const std::vector<vertex_t>& vertex_set,
- const std::vector< std::pair<vertex_t, vertex_t> >& edge_set,
- const Graph& g)
- {
- typedef typename std::vector<vertex_t>::const_iterator vertex_iter;
- typedef typename std::vector< std::pair<vertex_t, vertex_t> >
- ::const_iterator edge_iter;
- typedef typename graph_traits<Graph>::in_edge_iterator in_edge_iter;
-
- for (vertex_iter vi = vertex_set.begin(); vi != vertex_set.end(); ++vi) {
- vertex_t v = *vi;
- std::vector<vertex_t> inv_adj;
- for (edge_iter e = edge_set.begin(); e != edge_set.end(); ++e)
- if (e->second == v)
- inv_adj.push_back(e->first);
-
- std::pair<in_edge_iter, in_edge_iter> p = in_edges(v, g);
- BOOST_CHECK(in_degree(v, g) == inv_adj.size());
- BOOST_CHECK(deg_size_t(std::distance(p.first, p.second))
- == in_degree(v, g));
- for (; p.first != p.second; ++p.first) {
- edge_t e = *p.first;
- BOOST_CHECK(target(e, g) == v);
- BOOST_CHECK(contains(inv_adj, source(e, g)) == true);
- }
- }
- }
-
- void test_adjacency_graph
- (const std::vector<vertex_t>& vertex_set,
- const std::vector< std::pair<vertex_t,vertex_t> >& edge_set,
- const Graph& g)
- {
- typedef typename std::vector<vertex_t>::const_iterator vertex_iter;
- typedef typename std::vector<std::pair<vertex_t,vertex_t> >
- ::const_iterator edge_iter;
- typedef typename graph_traits<Graph>::adjacency_iterator adj_iter;
-
- for (vertex_iter ui = vertex_set.begin(); ui != vertex_set.end(); ++ui) {
- vertex_t u = *ui;
- std::vector<vertex_t> adj;
- for (edge_iter e = edge_set.begin(); e != edge_set.end(); ++e)
- if (e->first == u)
- adj.push_back(e->second);
-
- std::pair<adj_iter, adj_iter> p = adjacent_vertices(u, g);
- BOOST_CHECK(deg_size_t(std::distance(p.first, p.second)) == adj.size());
- for (; p.first != p.second; ++p.first) {
- vertex_t v = *p.first;
- BOOST_CHECK(contains(adj, v) == true);
- }
- }
- }
-
- void test_vertex_list_graph
- (const std::vector<vertex_t>& vertex_set, const Graph& g)
- {
- typedef typename graph_traits<Graph>::vertex_iterator v_iter;
- std::pair<v_iter, v_iter> p = vertices(g);
- BOOST_CHECK(num_vertices(g) == vertex_set.size());
- v_size_t n = std::distance(p.first, p.second);
- BOOST_CHECK(n == num_vertices(g));
- for (; p.first != p.second; ++p.first) {
- vertex_t v = *p.first;
- BOOST_CHECK(contains(vertex_set, v) == true);
- }
- }
-
- void test_edge_list_graph
- (const std::vector<vertex_t>& vertex_set,
- const std::vector< std::pair<vertex_t, vertex_t> >& edge_set,
- const Graph& g)
- {
- typedef typename graph_traits<Graph>::edge_iterator e_iter;
- std::pair<e_iter, e_iter> p = edges(g);
- BOOST_CHECK(num_edges(g) == edge_set.size());
- e_size_t m = std::distance(p.first, p.second);
- BOOST_CHECK(m == num_edges(g));
- for (; p.first != p.second; ++p.first) {
- edge_t e = *p.first;
- BOOST_CHECK(any_if(edge_set, connects(source(e, g), target(e, g), g)));
- BOOST_CHECK(contains(vertex_set, source(e, g)) == true);
- BOOST_CHECK(contains(vertex_set, target(e, g)) == true);
- }
- }
-
- void test_adjacency_matrix
- (const std::vector<vertex_t>& vertex_set,
- const std::vector< std::pair<vertex_t, vertex_t> >& edge_set,
- const Graph& g)
- {
- std::pair<edge_t, bool> p;
- for (typename std::vector<std::pair<vertex_t, vertex_t> >
- ::const_iterator i = edge_set.begin();
- i != edge_set.end(); ++i) {
- p = edge(i->first, i->second, g);
- BOOST_CHECK(p.second == true);
- BOOST_CHECK(source(p.first, g) == i->first);
- BOOST_CHECK(target(p.first, g) == i->second);
- }
- typename std::vector<vertex_t>::const_iterator j, k;
- for (j = vertex_set.begin(); j != vertex_set.end(); ++j)
- for (k = vertex_set.begin(); k != vertex_set.end(); ++k) {
- p = edge(*j, *k, g);
- if (p.second == true)
- BOOST_CHECK(any_if(edge_set,
- connects(source(p.first, g), target(p.first, g), g)) == true);
- }
- }
-
- //=========================================================================
- // Mutating Operations
-
- void test_add_vertex(Graph& g)
- {
- Graph cpy;
- std::vector<vertex_t> iso_vec(num_vertices(g));
- IsoMap iso_map(iso_vec.begin(), get(vertex_index, g));
- copy_graph(g, cpy, orig_to_copy(iso_map));
-
- assert((verify_isomorphism(g, cpy, iso_map)));
-
- vertex_t v = add_vertex(g);
-
- BOOST_CHECK(num_vertices(g) == num_vertices(cpy) + 1);
-
- BOOST_CHECK(out_degree(v, g) == 0);
-
- // Make sure the rest of the graph stayed the same
- BOOST_CHECK((verify_isomorphism
- (make_filtered_graph(g, keep_all(), ignore_vertex(v)), cpy,
- iso_map)));
- }
-
- void test_add_edge(vertex_t u, vertex_t v, Graph& g)
- {
- Graph cpy;
- std::vector<vertex_t> iso_vec(num_vertices(g));
- IsoMap iso_map(iso_vec.begin(), get(vertex_index, g));
- copy_graph(g, cpy, orig_to_copy(iso_map));
-
- bool parallel_edge_exists = contains(adjacent_vertices(u, g), v);
-
- std::pair<edge_t, bool> p = add_edge(u, v, g);
- edge_t e = p.first;
- bool added = p.second;
-
- if (is_undirected(g) && u == v) // self edge
- BOOST_CHECK(added == false);
- else if (parallel_edge_exists)
- BOOST_CHECK(allows_parallel_edges(g) && added == true
- || !allows_parallel_edges(g) && added == false);
- else
- BOOST_CHECK(added == true);
-
- if (p.second == true) { // edge added
- BOOST_CHECK(num_edges(g) == num_edges(cpy) + 1);
-
- BOOST_CHECK(contains(out_edges(u, g), e) == true);
-
- BOOST_CHECK((verify_isomorphism
- (make_filtered_graph(g, ignore_edge(e)), cpy, iso_map)));
- }
- else { // edge not added
- if (! (is_undirected(g) && u == v)) {
- // e should be a parallel edge
- BOOST_CHECK(source(e, g) == u);
- BOOST_CHECK(target(e, g) == v);
- }
- // The graph should not be changed.
- BOOST_CHECK((verify_isomorphism(g, cpy, iso_map)));
- }
- } // test_add_edge()
-
-
- void test_remove_edge(vertex_t u, vertex_t v, Graph& g)
- {
- Graph cpy;
- std::vector<vertex_t> iso_vec(num_vertices(g));
- IsoMap iso_map(iso_vec.begin(), get(vertex_index, g));
- copy_graph(g, cpy, orig_to_copy(iso_map));
-
- deg_size_t occurances = count(adjacent_vertices(u, g), v);
-
- remove_edge(u, v, g);
-
- BOOST_CHECK(num_edges(g) + occurances == num_edges(cpy));
- BOOST_CHECK((verify_isomorphism
- (g, make_filtered_graph(cpy, ignore_edges(u,v,cpy)),
- iso_map)));
- }
-
- void test_remove_edge(edge_t e, Graph& g)
- {
- Graph cpy;
- std::vector<vertex_t> iso_vec(num_vertices(g));
- IsoMap iso_map(iso_vec.begin(), get(vertex_index, g));
- copy_graph(g, cpy, orig_to_copy(iso_map));
-
- vertex_t u = source(e, g), v = target(e, g);
- deg_size_t occurances = count(adjacent_vertices(u, g), v);
-
- remove_edge(e, g);
-
- BOOST_CHECK(num_edges(g) + 1 == num_edges(cpy));
- BOOST_CHECK(count(adjacent_vertices(u, g), v) + 1 == occurances);
- BOOST_CHECK((verify_isomorphism
- (g, make_filtered_graph(cpy, ignore_edge(e)),
- iso_map)));
- }
-
- void test_clear_vertex(vertex_t v, Graph& g)
- {
- Graph cpy;
- std::vector<vertex_t> iso_vec(num_vertices(g));
- IsoMap iso_map(iso_vec.begin(), get(vertex_index, g));
- copy_graph(g, cpy, orig_to_copy(iso_map));
-
- clear_vertex(v, g);
-
- BOOST_CHECK(out_degree(v, g) == 0);
- BOOST_CHECK(num_vertices(g) == num_vertices(cpy));
- BOOST_CHECK((verify_isomorphism
- (g, make_filtered_graph(cpy, keep_all(), ignore_vertex(v)),
- iso_map)));
- }
-
- //=========================================================================
- // Property Map
-
- template <typename PropVal, typename PropertyTag>
- void test_readable_vertex_property_graph
- (const std::vector<PropVal>& vertex_prop, PropertyTag, const Graph& g)
- {
- typedef typename property_map<Graph, PropertyTag>::const_type const_Map;
- const_Map pmap = get(PropertyTag(), g);
- typename std::vector<PropVal>::const_iterator i = vertex_prop.begin();
-
- for (typename boost::graph_traits<Graph>::vertex_iterator
- bgl_first_9 = vertices(g).first, bgl_last_9 = vertices(g).second;
- bgl_first_9 != bgl_last_9; bgl_first_9 = bgl_last_9)
- for (typename boost::graph_traits<Graph>::vertex_descriptor v;
- bgl_first_9 != bgl_last_9 ? (v = *bgl_first_9, true) : false;
- ++bgl_first_9) {
- //BGL_FORALL_VERTICES_T(v, g, Graph) {
- typename property_traits<const_Map>::value_type
- pval1 = get(pmap, v), pval2 = get(PropertyTag(), g, v);
- BOOST_CHECK(pval1 == pval2);
- BOOST_CHECK(pval1 == *i++);
- }
- }
-
- template <typename PropVal, typename PropertyTag>
- void test_vertex_property_graph
- (const std::vector<PropVal>& vertex_prop, PropertyTag tag, Graph& g)
- {
- typedef typename property_map<Graph, PropertyTag>::type PMap;
- PMap pmap = get(PropertyTag(), g);
- typename std::vector<PropVal>::const_iterator i = vertex_prop.begin();
- for (typename boost::graph_traits<Graph>::vertex_iterator
- bgl_first_9 = vertices(g).first, bgl_last_9 = vertices(g).second;
- bgl_first_9 != bgl_last_9; bgl_first_9 = bgl_last_9)
- for (typename boost::graph_traits<Graph>::vertex_descriptor v;
- bgl_first_9 != bgl_last_9 ? (v = *bgl_first_9, true) : false;
- ++bgl_first_9)
- // BGL_FORALL_VERTICES_T(v, g, Graph)
- put(pmap, v, *i++);
-
- test_readable_vertex_property_graph(vertex_prop, tag, g);
-
- BGL_FORALL_VERTICES_T(v, g, Graph)
- put(pmap, v, vertex_prop[0]);
-
- typename std::vector<PropVal>::const_iterator j = vertex_prop.begin();
- BGL_FORALL_VERTICES_T(v, g, Graph)
- put(PropertyTag(), g, v, *j++);
-
- test_readable_vertex_property_graph(vertex_prop, tag, g);
- }
-
-
- };
-
-
-} // namespace boost
-
-#include <boost/graph/iteration_macros_undef.hpp>
-
-#endif // BOOST_GRAPH_TEST_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_TRAITS_HPP
-#define BOOST_GRAPH_TRAITS_HPP
-
-#include <boost/config.hpp>
-#include <iterator>
-#include <boost/tuple/tuple.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/iterator/iterator_categories.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost {
-
- template <typename G>
- struct graph_traits {
- typedef typename G::vertex_descriptor vertex_descriptor;
- typedef typename G::edge_descriptor edge_descriptor;
- typedef typename G::adjacency_iterator adjacency_iterator;
- typedef typename G::out_edge_iterator out_edge_iterator;
- typedef typename G::in_edge_iterator in_edge_iterator;
- typedef typename G::vertex_iterator vertex_iterator;
- typedef typename G::edge_iterator edge_iterator;
-
- typedef typename G::directed_category directed_category;
- typedef typename G::edge_parallel_category edge_parallel_category;
- typedef typename G::traversal_category traversal_category;
-
- typedef typename G::vertices_size_type vertices_size_type;
- typedef typename G::edges_size_type edges_size_type;
- typedef typename G::degree_size_type degree_size_type;
-
- static inline vertex_descriptor null_vertex();
- };
-
- template <typename G>
- inline typename graph_traits<G>::vertex_descriptor
- graph_traits<G>::null_vertex()
- {
- return G::null_vertex();
- }
-
- // directed_category tags
- struct directed_tag { };
- struct undirected_tag { };
- struct bidirectional_tag : public directed_tag { };
-
- namespace detail {
- inline bool is_directed(directed_tag) { return true; }
- inline bool is_directed(undirected_tag) { return false; }
- }
-
- template <typename Graph>
- bool is_directed(const Graph&) {
- typedef typename graph_traits<Graph>::directed_category Cat;
- return detail::is_directed(Cat());
- }
- template <typename Graph>
- bool is_undirected(const Graph& g) {
- return ! is_directed(g);
- }
-
- // edge_parallel_category tags
- struct allow_parallel_edge_tag {};
- struct disallow_parallel_edge_tag {};
-
- namespace detail {
- inline bool allows_parallel(allow_parallel_edge_tag) { return true; }
- inline bool allows_parallel(disallow_parallel_edge_tag) { return false; }
- }
-
- template <typename Graph>
- bool allows_parallel_edges(const Graph&) {
- typedef typename graph_traits<Graph>::edge_parallel_category Cat;
- return detail::allows_parallel(Cat());
- }
-
- // traversal_category tags
- struct incidence_graph_tag { };
- struct adjacency_graph_tag { };
- struct bidirectional_graph_tag :
- public virtual incidence_graph_tag { };
- struct vertex_list_graph_tag { };
- struct edge_list_graph_tag { };
- struct adjacency_matrix_tag { };
-
- //?? not the right place ?? Lee
- typedef boost::forward_traversal_tag multi_pass_input_iterator_tag;
-
- template <typename G>
- struct edge_property_type {
- typedef typename G::edge_property_type type;
- };
- template <typename G>
- struct vertex_property_type {
- typedef typename G::vertex_property_type type;
- };
- template <typename G>
- struct graph_property_type {
- typedef typename G::graph_property_type type;
- };
-
- struct no_vertex_bundle {};
- struct no_edge_bundle {};
-
- template<typename G>
- struct vertex_bundle_type
- {
- typedef typename G::vertex_bundled type;
- };
-
- template<typename G>
- struct edge_bundle_type
- {
- typedef typename G::edge_bundled type;
- };
-
- namespace graph { namespace detail {
- template<typename Graph, typename Descriptor>
- class bundled_result
- {
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename mpl::if_c<(is_same<Descriptor, Vertex>::value),
- vertex_bundle_type<Graph>,
- edge_bundle_type<Graph> >::type bundler;
-
- public:
- typedef typename bundler::type type;
- };
- } } // end namespace graph::detail
-} // namespace boost
-
-// Since pair is in namespace std, Koenig lookup will find source and
-// target if they are also defined in namespace std. This is illegal,
-// but the alternative is to put source and target in the global
-// namespace which causes name conflicts with other libraries (like
-// SUIF).
-namespace std {
-
- /* Some helper functions for dealing with pairs as edges */
- template <class T, class G>
- T source(pair<T,T> p, const G&) { return p.first; }
-
- template <class T, class G>
- T target(pair<T,T> p, const G&) { return p.second; }
-
-}
-
-#if defined(__GNUC__) && defined(__SGI_STL_PORT)
-// For some reason g++ with STLport does not see the above definition
-// of source() and target() unless we bring them into the boost
-// namespace.
-namespace boost {
- using std::source;
- using std::target;
-}
-#endif
-
-#endif // BOOST_GRAPH_TRAITS_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_UTILITY_HPP
-#define BOOST_GRAPH_UTILITY_HPP
-
-#include <stdlib.h>
-#include <iostream>
-#include <algorithm>
-#include <assert.h>
-#include <boost/config.hpp>
-#include <boost/tuple/tuple.hpp>
-#ifndef BOOST_NO_SLIST
-# include <slist> // shouldn't have to include this... -JGS
-#endif
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/pending/container_traits.hpp>
-#include <boost/graph/depth_first_search.hpp>
-// iota moved to detail/algorithm.hpp
-#include <boost/detail/algorithm.hpp>
-
-namespace boost {
-
- // Provide an undirected graph interface alternative to the
- // the source() and target() edge functions.
- template <class UndirectedGraph>
- inline
- std::pair<typename graph_traits<UndirectedGraph>::vertex_descriptor,
- typename graph_traits<UndirectedGraph>::vertex_descriptor>
- incident(typename graph_traits<UndirectedGraph>::edge_descriptor e,
- UndirectedGraph& g)
- {
- return std::make_pair(source(e,g), target(e,g));
- }
-
- // Provide an undirected graph interface alternative
- // to the out_edges() function.
- template <class Graph>
- inline
- std::pair<typename graph_traits<Graph>::out_edge_iterator,
- typename graph_traits<Graph>::out_edge_iterator>
- incident_edges(typename graph_traits<Graph>::vertex_descriptor u,
- Graph& g)
- {
- return out_edges(u, g);
- }
-
- template <class Graph>
- inline typename graph_traits<Graph>::vertex_descriptor
- opposite(typename graph_traits<Graph>::edge_descriptor e,
- typename graph_traits<Graph>::vertex_descriptor v,
- const Graph& g)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- if (v == source(e, g))
- return target(e, g);
- else if (v == target(e, g))
- return source(e, g);
- else
- return vertex_descriptor();
- }
-
- //===========================================================================
- // Some handy predicates
-
- template <typename Vertex, typename Graph>
- struct incident_from_predicate {
- incident_from_predicate(Vertex u, const Graph& g)
- : m_u(u), m_g(g) { }
- template <class Edge>
- bool operator()(const Edge& e) const {
- return source(e, m_g) == m_u;
- }
- Vertex m_u;
- const Graph& m_g;
- };
- template <typename Vertex, typename Graph>
- inline incident_from_predicate<Vertex, Graph>
- incident_from(Vertex u, const Graph& g) {
- return incident_from_predicate<Vertex, Graph>(u, g);
- }
-
- template <typename Vertex, typename Graph>
- struct incident_to_predicate {
- incident_to_predicate(Vertex u, const Graph& g)
- : m_u(u), m_g(g) { }
- template <class Edge>
- bool operator()(const Edge& e) const {
- return target(e, m_g) == m_u;
- }
- Vertex m_u;
- const Graph& m_g;
- };
- template <typename Vertex, typename Graph>
- inline incident_to_predicate<Vertex, Graph>
- incident_to(Vertex u, const Graph& g) {
- return incident_to_predicate<Vertex, Graph>(u, g);
- }
-
- template <typename Vertex, typename Graph>
- struct incident_on_predicate {
- incident_on_predicate(Vertex u, const Graph& g)
- : m_u(u), m_g(g) { }
- template <class Edge>
- bool operator()(const Edge& e) const {
- return source(e, m_g) == m_u || target(e, m_g) == m_u;
- }
- Vertex m_u;
- const Graph& m_g;
- };
- template <typename Vertex, typename Graph>
- inline incident_on_predicate<Vertex, Graph>
- incident_on(Vertex u, const Graph& g) {
- return incident_on_predicate<Vertex, Graph>(u, g);
- }
-
- template <typename Vertex, typename Graph>
- struct connects_predicate {
- connects_predicate(Vertex u, Vertex v, const Graph& g)
- : m_u(u), m_v(v), m_g(g) { }
- template <class Edge>
- bool operator()(const Edge& e) const {
- if (is_directed(m_g))
- return source(e, m_g) == m_u && target(e, m_g) == m_v;
- else
- return (source(e, m_g) == m_u && target(e, m_g) == m_v)
- || (source(e, m_g) == m_v && target(e, m_g) == m_u);
- }
- Vertex m_u, m_v;
- const Graph& m_g;
- };
- template <typename Vertex, typename Graph>
- inline connects_predicate<Vertex, Graph>
- connects(Vertex u, Vertex v, const Graph& g) {
- return connects_predicate<Vertex, Graph>(u, v, g);
- }
-
-
- // Need to convert all of these printing functions to take an ostream object
- // -JGS
-
- template <class IncidenceGraph, class Name>
- void print_in_edges(const IncidenceGraph& G, Name name)
- {
- typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
- for (tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
- std::cout << get(name,*ui) << " <-- ";
- typename graph_traits<IncidenceGraph>
- ::in_edge_iterator ei, ei_end;
- for(tie(ei,ei_end) = in_edges(*ui,G); ei != ei_end; ++ei)
- std::cout << get(name,source(*ei,G)) << " ";
- std::cout << std::endl;
- }
- }
-
- template <class IncidenceGraph, class Name>
- void print_graph_dispatch(const IncidenceGraph& G, Name name, directed_tag)
- {
- typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
- for (tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
- std::cout << get(name,*ui) << " --> ";
- typename graph_traits<IncidenceGraph>
- ::out_edge_iterator ei, ei_end;
- for(tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
- std::cout << get(name,target(*ei,G)) << " ";
- std::cout << std::endl;
- }
- }
- template <class IncidenceGraph, class Name>
- void print_graph_dispatch(const IncidenceGraph& G, Name name, undirected_tag)
- {
- typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
- for (tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
- std::cout << get(name,*ui) << " <--> ";
- typename graph_traits<IncidenceGraph>
- ::out_edge_iterator ei, ei_end;
- for(tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
- std::cout << get(name,target(*ei,G)) << " ";
- std::cout << std::endl;
- }
- }
- template <class IncidenceGraph, class Name>
- void print_graph(const IncidenceGraph& G, Name name)
- {
- typedef typename graph_traits<IncidenceGraph>
- ::directed_category Cat;
- print_graph_dispatch(G, name, Cat());
- }
- template <class IncidenceGraph>
- void print_graph(const IncidenceGraph& G) {
- print_graph(G, get(vertex_index, G));
- }
-
- template <class EdgeListGraph, class Name>
- void print_edges(const EdgeListGraph& G, Name name)
- {
- typename graph_traits<EdgeListGraph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
- std::cout << "(" << get(name, source(*ei, G))
- << "," << get(name, target(*ei, G)) << ") ";
- std::cout << std::endl;
- }
-
- template <class EdgeListGraph, class VertexName, class EdgeName>
- void print_edges2(const EdgeListGraph& G, VertexName vname, EdgeName ename)
- {
- typename graph_traits<EdgeListGraph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
- std::cout << get(ename, *ei) << "(" << get(vname, source(*ei, G))
- << "," << get(vname, target(*ei, G)) << ") ";
- std::cout << std::endl;
- }
-
- template <class VertexListGraph, class Name>
- void print_vertices(const VertexListGraph& G, Name name)
- {
- typename graph_traits<VertexListGraph>::vertex_iterator vi,vi_end;
- for (tie(vi,vi_end) = vertices(G); vi != vi_end; ++vi)
- std::cout << get(name,*vi) << " ";
- std::cout << std::endl;
- }
-
- template <class Graph, class Vertex>
- bool is_adj_dispatch(Graph& g, Vertex a, Vertex b, bidirectional_tag)
- {
- typedef typename graph_traits<Graph>::edge_descriptor
- edge_descriptor;
- typename graph_traits<Graph>::adjacency_iterator vi, viend,
- adj_found;
- tie(vi, viend) = adjacent_vertices(a, g);
- adj_found = std::find(vi, viend, b);
- if (adj_found == viend)
- return false;
-
- typename graph_traits<Graph>::out_edge_iterator oi, oiend,
- out_found;
- tie(oi, oiend) = out_edges(a, g);
- out_found = std::find_if(oi, oiend, incident_to(b, g));
- if (out_found == oiend)
- return false;
-
- typename graph_traits<Graph>::in_edge_iterator ii, iiend,
- in_found;
- tie(ii, iiend) = in_edges(b, g);
- in_found = std::find_if(ii, iiend, incident_from(a, g));
- if (in_found == iiend)
- return false;
-
- return true;
- }
- template <class Graph, class Vertex>
- bool is_adj_dispatch(Graph& g, Vertex a, Vertex b, directed_tag)
- {
- typedef typename graph_traits<Graph>::edge_descriptor
- edge_descriptor;
- typename graph_traits<Graph>::adjacency_iterator vi, viend, found;
- tie(vi, viend) = adjacent_vertices(a, g);
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 && defined(__SGI_STL_PORT)
- // Getting internal compiler error with std::find()
- found = viend;
- for (; vi != viend; ++vi)
- if (*vi == b) {
- found = vi;
- break;
- }
-#else
- found = std::find(vi, viend, b);
-#endif
- if ( found == viend )
- return false;
-
- typename graph_traits<Graph>::out_edge_iterator oi, oiend,
- out_found;
- tie(oi, oiend) = out_edges(a, g);
-
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 && defined(__SGI_STL_PORT)
- // Getting internal compiler error with std::find()
- out_found = oiend;
- for (; oi != oiend; ++oi)
- if (target(*oi, g) == b) {
- out_found = oi;
- break;
- }
-#else
- out_found = std::find_if(oi, oiend, incident_to(b, g));
-#endif
- if (out_found == oiend)
- return false;
- return true;
- }
- template <class Graph, class Vertex>
- bool is_adj_dispatch(Graph& g, Vertex a, Vertex b, undirected_tag)
- {
- return is_adj_dispatch(g, a, b, directed_tag());
- }
-
- template <class Graph, class Vertex>
- bool is_adjacent(Graph& g, Vertex a, Vertex b) {
- typedef typename graph_traits<Graph>::directed_category Cat;
- return is_adj_dispatch(g, a, b, Cat());
- }
-
- template <class Graph, class Edge>
- bool in_edge_set(Graph& g, Edge e)
- {
- typename Graph::edge_iterator ei, ei_end, found;
- tie(ei, ei_end) = edges(g);
- found = std::find(ei, ei_end, e);
- return found != ei_end;
- }
-
- template <class Graph, class Vertex>
- bool in_vertex_set(Graph& g, Vertex v)
- {
- typename Graph::vertex_iterator vi, vi_end, found;
- tie(vi, vi_end) = vertices(g);
- found = std::find(vi, vi_end, v);
- return found != vi_end;
- }
-
- template <class Graph, class Vertex>
- bool in_edge_set(Graph& g, Vertex u, Vertex v)
- {
- typename Graph::edge_iterator ei, ei_end;
- for (tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
- if (source(*ei,g) == u && target(*ei,g) == v)
- return true;
- return false;
- }
-
- // is x a descendant of y?
- template <typename ParentMap>
- inline bool is_descendant
- (typename property_traits<ParentMap>::value_type x,
- typename property_traits<ParentMap>::value_type y,
- ParentMap parent)
- {
- if (get(parent, x) == x) // x is the root of the tree
- return false;
- else if (get(parent, x) == y)
- return true;
- else
- return is_descendant(get(parent, x), y, parent);
- }
-
- // is y reachable from x?
- template <typename IncidenceGraph, typename VertexColorMap>
- inline bool is_reachable
- (typename graph_traits<IncidenceGraph>::vertex_descriptor x,
- typename graph_traits<IncidenceGraph>::vertex_descriptor y,
- const IncidenceGraph& g,
- VertexColorMap color) // should start out white for every vertex
- {
- typedef typename property_traits<VertexColorMap>::value_type ColorValue;
- dfs_visitor<> vis;
- depth_first_visit(g, x, vis, color);
- return get(color, y) != color_traits<ColorValue>::white();
- }
-
- // Is the undirected graph connected?
- // Is the directed graph strongly connected?
- template <typename VertexListGraph, typename VertexColorMap>
- inline bool is_connected(const VertexListGraph& g, VertexColorMap color)
- {
- typedef typename property_traits<VertexColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename graph_traits<VertexListGraph>::vertex_iterator
- ui, ui_end, vi, vi_end, ci, ci_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- if (*ui != *vi) {
- for (tie(ci, ci_end) = vertices(g); ci != ci_end; ++ci)
- put(color, *ci, Color::white());
- if (! is_reachable(*ui, *vi, color))
- return false;
- }
- return true;
- }
-
- template <typename Graph>
- bool is_self_loop
- (typename graph_traits<Graph>::edge_descriptor e,
- const Graph& g)
- {
- return source(e, g) == target(e, g);
- }
-
-
- template <class T1, class T2>
- std::pair<T1,T2>
- make_list(const T1& t1, const T2& t2)
- { return std::make_pair(t1, t2); }
-
- template <class T1, class T2, class T3>
- std::pair<T1,std::pair<T2,T3> >
- make_list(const T1& t1, const T2& t2, const T3& t3)
- { return std::make_pair(t1, std::make_pair(t2, t3)); }
-
- template <class T1, class T2, class T3, class T4>
- std::pair<T1,std::pair<T2,std::pair<T3,T4> > >
- make_list(const T1& t1, const T2& t2, const T3& t3, const T4& t4)
- { return std::make_pair(t1, std::make_pair(t2, std::make_pair(t3, t4))); }
-
- template <class T1, class T2, class T3, class T4, class T5>
- std::pair<T1,std::pair<T2,std::pair<T3,std::pair<T4,T5> > > >
- make_list(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5)
- { return std::make_pair(t1, std::make_pair(t2, std::make_pair(t3, std::make_pair(t4, t5)))); }
-
-} /* namespace boost */
-
-#endif /* BOOST_GRAPH_UTILITY_HPP*/
+++ /dev/null
-//=======================================================================
-// Copyright 2001 University of Notre Dame.
-// Copyright 2003 Jeremy Siek
-// Authors: Lie-Quan Lee and Jeremy Siek
-//
-// Distributed under the 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_GRAPHVIZ_HPP
-#define BOOST_GRAPHVIZ_HPP
-
-#include <boost/config.hpp>
-#include <string>
-#include <map>
-#include <iostream>
-#include <fstream>
-#include <stdio.h> // for FILE
-#include <boost/property_map.hpp>
-#include <boost/tuple/tuple.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/subgraph.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/dynamic_property_map.hpp>
-
-namespace boost {
-
- template <typename directed_category>
- struct graphviz_io_traits {
- static std::string name() {
- return "digraph";
- }
- static std::string delimiter() {
- return "->";
- } };
-
- template <>
- struct graphviz_io_traits <undirected_tag> {
- static std::string name() {
- return "graph";
- }
- static std::string delimiter() {
- return "--";
- }
- };
-
- struct default_writer {
- void operator()(std::ostream&) const {
- }
- template <class VorE>
- void operator()(std::ostream&, const VorE&) const {
- }
- };
-
- template <class Name>
- class label_writer {
- public:
- label_writer(Name _name) : name(_name) {}
- template <class VertexOrEdge>
- void operator()(std::ostream& out, const VertexOrEdge& v) const {
- out << "[label=\"" << get(name, v) << "\"]";
- }
- private:
- Name name;
- };
- template <class Name>
- inline label_writer<Name>
- make_label_writer(Name n) {
- return label_writer<Name>(n);
- }
-
- enum edge_attribute_t { edge_attribute = 1111 };
- enum vertex_attribute_t { vertex_attribute = 2222 };
- enum graph_graph_attribute_t { graph_graph_attribute = 3333 };
- enum graph_vertex_attribute_t { graph_vertex_attribute = 4444 };
- enum graph_edge_attribute_t { graph_edge_attribute = 5555 };
-
- BOOST_INSTALL_PROPERTY(edge, attribute);
- BOOST_INSTALL_PROPERTY(vertex, attribute);
- BOOST_INSTALL_PROPERTY(graph, graph_attribute);
- BOOST_INSTALL_PROPERTY(graph, vertex_attribute);
- BOOST_INSTALL_PROPERTY(graph, edge_attribute);
-
-
- template <class Attribute>
- inline void write_attributes(const Attribute& attr, std::ostream& out) {
- typename Attribute::const_iterator i, iend;
- i = attr.begin();
- iend = attr.end();
-
- while ( i != iend ) {
- out << i->first << "=\"" << i->second << "\"";
- ++i;
- if ( i != iend )
- out << ", ";
- }
- }
-
- template<typename Attributes>
- inline void write_all_attributes(Attributes attributes,
- const std::string& name,
- std::ostream& out)
- {
- typename Attributes::const_iterator i = attributes.begin(),
- end = attributes.end();
- if (i != end) {
- out << name << " [\n";
- write_attributes(attributes, out);
- out << "];\n";
- }
- }
-
- inline void write_all_attributes(detail::error_property_not_found,
- const std::string&,
- std::ostream&)
- {
- // Do nothing - no attributes exist
- }
-
-
-
-
- template <typename GraphGraphAttributes,
- typename GraphNodeAttributes,
- typename GraphEdgeAttributes>
- struct graph_attributes_writer
- {
- graph_attributes_writer(GraphGraphAttributes gg,
- GraphNodeAttributes gn,
- GraphEdgeAttributes ge)
- : g_attributes(gg), n_attributes(gn), e_attributes(ge) { }
-
- void operator()(std::ostream& out) const {
- write_all_attributes(g_attributes, "graph", out);
- write_all_attributes(n_attributes, "node", out);
- write_all_attributes(e_attributes, "edge", out);
- }
- GraphGraphAttributes g_attributes;
- GraphNodeAttributes n_attributes;
- GraphEdgeAttributes e_attributes;
- };
-
- template <typename GAttrMap, typename NAttrMap, typename EAttrMap>
- graph_attributes_writer<GAttrMap, NAttrMap, EAttrMap>
- make_graph_attributes_writer(const GAttrMap& g_attr, const NAttrMap& n_attr,
- const EAttrMap& e_attr) {
- return graph_attributes_writer<GAttrMap, NAttrMap, EAttrMap>
- (g_attr, n_attr, e_attr);
- }
-
-
- template <typename Graph>
- graph_attributes_writer
- <typename graph_property<Graph, graph_graph_attribute_t>::type,
- typename graph_property<Graph, graph_vertex_attribute_t>::type,
- typename graph_property<Graph, graph_edge_attribute_t>::type>
- make_graph_attributes_writer(const Graph& g)
- {
- typedef typename graph_property<Graph, graph_graph_attribute_t>::type
- GAttrMap;
- typedef typename graph_property<Graph, graph_vertex_attribute_t>::type
- NAttrMap;
- typedef typename graph_property<Graph, graph_edge_attribute_t>::type
- EAttrMap;
- GAttrMap gam = get_property(g, graph_graph_attribute);
- NAttrMap nam = get_property(g, graph_vertex_attribute);
- EAttrMap eam = get_property(g, graph_edge_attribute);
- graph_attributes_writer<GAttrMap, NAttrMap, EAttrMap> writer(gam, nam, eam);
- return writer;
- }
-
- template <typename AttributeMap>
- struct attributes_writer {
- attributes_writer(AttributeMap attr)
- : attributes(attr) { }
-
- template <class VorE>
- void operator()(std::ostream& out, const VorE& e) const {
- this->write_attribute(out, attributes[e]);
- }
-
- private:
- template<typename AttributeSequence>
- void write_attribute(std::ostream& out,
- const AttributeSequence& seq) const
- {
- if (!seq.empty()) {
- out << "[";
- write_attributes(seq, out);
- out << "]";
- }
- }
-
- void write_attribute(std::ostream&,
- detail::error_property_not_found) const
- {
- }
- AttributeMap attributes;
- };
-
- template <typename Graph>
- attributes_writer
- <typename property_map<Graph, edge_attribute_t>::const_type>
- make_edge_attributes_writer(const Graph& g)
- {
- typedef typename property_map<Graph, edge_attribute_t>::const_type
- EdgeAttributeMap;
- return attributes_writer<EdgeAttributeMap>(get(edge_attribute, g));
- }
-
- template <typename Graph>
- attributes_writer
- <typename property_map<Graph, vertex_attribute_t>::const_type>
- make_vertex_attributes_writer(const Graph& g)
- {
- typedef typename property_map<Graph, vertex_attribute_t>::const_type
- VertexAttributeMap;
- return attributes_writer<VertexAttributeMap>(get(vertex_attribute, g));
- }
-
- template <typename Graph, typename VertexPropertiesWriter,
- typename EdgePropertiesWriter, typename GraphPropertiesWriter,
- typename VertexID>
- inline void write_graphviz(std::ostream& out, const Graph& g,
- VertexPropertiesWriter vpw,
- EdgePropertiesWriter epw,
- GraphPropertiesWriter gpw,
- VertexID vertex_id)
- {
- typedef typename graph_traits<Graph>::directed_category cat_type;
- typedef graphviz_io_traits<cat_type> Traits;
- std::string name = "G";
- out << Traits::name() << " " << name << " {" << std::endl;
-
- gpw(out); //print graph properties
-
- typename graph_traits<Graph>::vertex_iterator i, end;
-
- for(tie(i,end) = vertices(g); i != end; ++i) {
- out << get(vertex_id, *i);
- vpw(out, *i); //print vertex attributes
- out << ";" << std::endl;
- }
- typename graph_traits<Graph>::edge_iterator ei, edge_end;
- for(tie(ei, edge_end) = edges(g); ei != edge_end; ++ei) {
- out << get(vertex_id, source(*ei, g)) << Traits::delimiter() << get(vertex_id, target(*ei, g)) << " ";
- epw(out, *ei); //print edge attributes
- out << ";" << std::endl;
- }
- out << "}" << std::endl;
- }
-
- template <typename Graph, typename VertexPropertiesWriter,
- typename EdgePropertiesWriter, typename GraphPropertiesWriter>
- inline void write_graphviz(std::ostream& out, const Graph& g,
- VertexPropertiesWriter vpw,
- EdgePropertiesWriter epw,
- GraphPropertiesWriter gpw)
- { write_graphviz(out, g, vpw, epw, gpw, get(vertex_index, g)); }
-
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
- // ambiguous overload problem with VC++
- template <typename Graph>
- inline void
- write_graphviz(std::ostream& out, const Graph& g) {
- default_writer dw;
- default_writer gw;
- write_graphviz(out, g, dw, dw, gw);
- }
-#endif
-
- template <typename Graph, typename VertexWriter>
- inline void
- write_graphviz(std::ostream& out, const Graph& g, VertexWriter vw) {
- default_writer dw;
- default_writer gw;
- write_graphviz(out, g, vw, dw, gw);
- }
-
- template <typename Graph, typename VertexWriter, typename EdgeWriter>
- inline void
- write_graphviz(std::ostream& out, const Graph& g,
- VertexWriter vw, EdgeWriter ew) {
- default_writer gw;
- write_graphviz(out, g, vw, ew, gw);
- }
-
- namespace detail {
-
- template <class Graph_, class RandomAccessIterator, class VertexID>
- void write_graphviz_subgraph (std::ostream& out,
- const subgraph<Graph_>& g,
- RandomAccessIterator vertex_marker,
- RandomAccessIterator edge_marker,
- VertexID vertex_id)
- {
- typedef subgraph<Graph_> Graph;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename graph_traits<Graph>::directed_category cat_type;
- typedef graphviz_io_traits<cat_type> Traits;
-
- typedef typename graph_property<Graph, graph_name_t>::type NameType;
- const NameType& g_name = get_property(g, graph_name);
-
- if ( g.is_root() )
- out << Traits::name() ;
- else
- out << "subgraph";
-
- out << " " << g_name << " {" << std::endl;
-
- typename Graph::const_children_iterator i_child, j_child;
-
- //print graph/node/edge attributes
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- typedef typename graph_property<Graph, graph_graph_attribute_t>::type
- GAttrMap;
- typedef typename graph_property<Graph, graph_vertex_attribute_t>::type
- NAttrMap;
- typedef typename graph_property<Graph, graph_edge_attribute_t>::type
- EAttrMap;
- GAttrMap gam = get_property(g, graph_graph_attribute);
- NAttrMap nam = get_property(g, graph_vertex_attribute);
- EAttrMap eam = get_property(g, graph_edge_attribute);
- graph_attributes_writer<GAttrMap, NAttrMap, EAttrMap> writer(gam, nam, eam);
- writer(out);
-#else
- make_graph_attributes_writer(g)(out);
-#endif
-
- //print subgraph
- for ( tie(i_child,j_child) = g.children();
- i_child != j_child; ++i_child )
- write_graphviz_subgraph(out, *i_child, vertex_marker, edge_marker,
- vertex_id);
-
- // Print out vertices and edges not in the subgraphs.
-
- typename graph_traits<Graph>::vertex_iterator i, end;
- typename graph_traits<Graph>::edge_iterator ei, edge_end;
-
- for(tie(i,end) = vertices(g); i != end; ++i) {
- Vertex v = g.local_to_global(*i);
- int pos = get(vertex_id, v);
- if ( vertex_marker[pos] ) {
- vertex_marker[pos] = false;
- out << pos;
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- typedef typename property_map<Graph, vertex_attribute_t>::const_type
- VertexAttributeMap;
- attributes_writer<VertexAttributeMap> vawriter(get(vertex_attribute,
- g.root()));
- vawriter(out, v);
-#else
- make_vertex_attributes_writer(g.root())(out, v);
-#endif
- out << ";" << std::endl;
- }
- }
-
- for (tie(ei, edge_end) = edges(g); ei != edge_end; ++ei) {
- Vertex u = g.local_to_global(source(*ei,g)),
- v = g.local_to_global(target(*ei, g));
- int pos = get(get(edge_index, g.root()), g.local_to_global(*ei));
- if ( edge_marker[pos] ) {
- edge_marker[pos] = false;
- out << get(vertex_id, u) << " " << Traits::delimiter()
- << " " << get(vertex_id, v);
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- typedef typename property_map<Graph, edge_attribute_t>::const_type
- EdgeAttributeMap;
- attributes_writer<EdgeAttributeMap> eawriter(get(edge_attribute, g));
- eawriter(out, *ei);
-#else
- make_edge_attributes_writer(g)(out, *ei); //print edge properties
-#endif
- out << ";" << std::endl;
- }
- }
- out << "}" << std::endl;
- }
- } // namespace detail
-
- // requires graph_name graph property
- template <typename Graph>
- void write_graphviz(std::ostream& out, const subgraph<Graph>& g) {
- std::vector<bool> edge_marker(num_edges(g), true);
- std::vector<bool> vertex_marker(num_vertices(g), true);
-
- detail::write_graphviz_subgraph(out, g,
- vertex_marker.begin(),
- edge_marker.begin(),
- get(vertex_index, g));
- }
-
- template <typename Graph>
- void write_graphviz(const std::string& filename, const subgraph<Graph>& g) {
- std::ofstream out(filename.c_str());
- std::vector<bool> edge_marker(num_edges(g), true);
- std::vector<bool> vertex_marker(num_vertices(g), true);
-
- detail::write_graphviz_subgraph(out, g,
- vertex_marker.begin(),
- edge_marker.begin(),
- get(vertex_index, g));
- }
-
- template <typename Graph, typename VertexID>
- void write_graphviz(std::ostream& out, const subgraph<Graph>& g,
- VertexID vertex_id)
- {
- std::vector<bool> edge_marker(num_edges(g), true);
- std::vector<bool> vertex_marker(num_vertices(g), true);
-
- detail::write_graphviz_subgraph(out, g,
- vertex_marker.begin(),
- edge_marker.begin(),
- vertex_id);
- }
-
- template <typename Graph, typename VertexID>
- void write_graphviz(const std::string& filename, const subgraph<Graph>& g,
- VertexID vertex_id)
- {
- std::ofstream out(filename.c_str());
- std::vector<bool> edge_marker(num_edges(g), true);
- std::vector<bool> vertex_marker(num_vertices(g), true);
-
- detail::write_graphviz_subgraph(out, g,
- vertex_marker.begin(),
- edge_marker.begin(),
- vertex_id);
- }
-
- typedef std::map<std::string, std::string> GraphvizAttrList;
-
- typedef property<vertex_attribute_t, GraphvizAttrList>
- GraphvizVertexProperty;
-
- typedef property<edge_attribute_t, GraphvizAttrList,
- property<edge_index_t, int> >
- GraphvizEdgeProperty;
-
- typedef property<graph_graph_attribute_t, GraphvizAttrList,
- property<graph_vertex_attribute_t, GraphvizAttrList,
- property<graph_edge_attribute_t, GraphvizAttrList,
- property<graph_name_t, std::string> > > >
- GraphvizGraphProperty;
-
- typedef subgraph<adjacency_list<vecS,
- vecS, directedS,
- GraphvizVertexProperty,
- GraphvizEdgeProperty,
- GraphvizGraphProperty> >
- GraphvizDigraph;
-
- typedef subgraph<adjacency_list<vecS,
- vecS, undirectedS,
- GraphvizVertexProperty,
- GraphvizEdgeProperty,
- GraphvizGraphProperty> >
- GraphvizGraph;
-
-
- // These four require linking the BGL-Graphviz library: libbgl-viz.a
- // from the /src directory.
- extern void read_graphviz(const std::string& file, GraphvizDigraph& g);
- extern void read_graphviz(FILE* file, GraphvizDigraph& g);
-
- extern void read_graphviz(const std::string& file, GraphvizGraph& g);
- extern void read_graphviz(FILE* file, GraphvizGraph& g);
-
- class dynamic_properties_writer
- {
- public:
- dynamic_properties_writer(const dynamic_properties& dp) : dp(&dp) { }
-
- template<typename Descriptor>
- void operator()(std::ostream& out, Descriptor key) const
- {
- bool first = true;
- for (dynamic_properties::const_iterator i = dp->begin();
- i != dp->end(); ++i) {
- if (typeid(key) == i->second->key()) {
- if (first) out << " [";
- else out << ", ";
- first = false;
-
- out << i->first << "=\"" << i->second->get_string(key) << "\"";
- }
- }
-
- if (!first) out << "]";
- }
-
- private:
- const dynamic_properties* dp;
- };
-
- class dynamic_vertex_properties_writer
- {
- public:
- dynamic_vertex_properties_writer(const dynamic_properties& dp,
- const std::string& node_id)
- : dp(&dp), node_id(&node_id) { }
-
- template<typename Descriptor>
- void operator()(std::ostream& out, Descriptor key) const
- {
- bool first = true;
- for (dynamic_properties::const_iterator i = dp->begin();
- i != dp->end(); ++i) {
- if (typeid(key) == i->second->key()
- && i->first != *node_id) {
- if (first) out << " [";
- else out << ", ";
- first = false;
-
- out << i->first << "=\"" << i->second->get_string(key) << "\"";
- }
- }
-
- if (!first) out << "]";
- }
-
- private:
- const dynamic_properties* dp;
- const std::string* node_id;
- };
-
- namespace graph { namespace detail {
-
- template<typename Vertex>
- struct node_id_property_map
- {
- typedef std::string value_type;
- typedef value_type reference;
- typedef Vertex key_type;
- typedef readable_property_map_tag category;
-
- node_id_property_map() {}
-
- node_id_property_map(const dynamic_properties& dp,
- const std::string& node_id)
- : dp(&dp), node_id(&node_id) { }
-
- const dynamic_properties* dp;
- const std::string* node_id;
- };
-
- template<typename Vertex>
- inline std::string
- get(node_id_property_map<Vertex> pm,
- typename node_id_property_map<Vertex>::key_type v)
- { return get(*pm.node_id, *pm.dp, v); }
-
- } } // end namespace graph::detail
-
- template<typename Graph>
- inline void
- write_graphviz(std::ostream& out, const Graph& g,
- const dynamic_properties& dp,
- const std::string& node_id = "node_id")
- {
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- write_graphviz(out, g, dp, node_id,
- graph::detail::node_id_property_map<Vertex>(dp, node_id));
- }
-
- template<typename Graph, typename VertexID>
- void
- write_graphviz(std::ostream& out, const Graph& g,
- const dynamic_properties& dp, const std::string& node_id,
- VertexID id)
- {
- write_graphviz
- (out, g,
- /*vertex_writer=*/dynamic_vertex_properties_writer(dp, node_id),
- /*edge_writer=*/dynamic_properties_writer(dp),
- /*graph_writer=*/default_writer(),
- id);
- }
-
-/////////////////////////////////////////////////////////////////////////////
-// Graph reader exceptions
-/////////////////////////////////////////////////////////////////////////////
-struct graph_exception : public std::exception {
- virtual ~graph_exception() throw() {}
- virtual const char* what() const throw() = 0;
-};
-
-struct bad_parallel_edge : public graph_exception {
- std::string from;
- std::string to;
- mutable std::string statement;
- bad_parallel_edge(const std::string& i, const std::string& j) :
- from(i), to(j) {}
-
- virtual ~bad_parallel_edge() throw() {}
- const char* what() const throw() {
- if(statement.empty())
- statement =
- std::string("Failed to add parallel edge: (")
- + from + "," + to + ")\n";
-
- return statement.c_str();
- }
-};
-
-struct directed_graph_error : public graph_exception {
- virtual ~directed_graph_error() throw() {}
- virtual const char* what() const throw() {
- return
- "read_graphviz: "
- "Tried to read a directed graph into an undirected graph.";
- }
-};
-
-struct undirected_graph_error : public graph_exception {
- virtual ~undirected_graph_error() throw() {}
- virtual const char* what() const throw() {
- return
- "read_graphviz: "
- "Tried to read an undirected graph into a directed graph.";
- }
-};
-
-namespace detail { namespace graph {
-
-typedef std::string id_t;
-typedef id_t node_t;
-
-// edges are not uniquely determined by adjacent nodes
-class edge_t {
- int idx_;
- explicit edge_t(int i) : idx_(i) {}
-public:
- static edge_t new_edge() {
- static int idx = 0;
- return edge_t(idx++);
- };
-
- bool operator==(const edge_t& rhs) const {
- return idx_ == rhs.idx_;
- }
- bool operator<(const edge_t& rhs) const {
- return idx_ < rhs.idx_;
- }
-};
-
-class mutate_graph
-{
- public:
- virtual ~mutate_graph() {}
- virtual bool is_directed() const = 0;
- virtual void do_add_vertex(const node_t& node) = 0;
-
- virtual void
- do_add_edge(const edge_t& edge, const node_t& source, const node_t& target)
- = 0;
-
- virtual void
- set_node_property(const id_t& key, const node_t& node, const id_t& value) = 0;
-
- virtual void
- set_edge_property(const id_t& key, const edge_t& edge, const id_t& value) = 0;
-};
-
-template<typename MutableGraph>
-class mutate_graph_impl : public mutate_graph
-{
- typedef typename graph_traits<MutableGraph>::vertex_descriptor bgl_vertex_t;
- typedef typename graph_traits<MutableGraph>::edge_descriptor bgl_edge_t;
-
- public:
- mutate_graph_impl(MutableGraph& graph, dynamic_properties& dp,
- std::string node_id_prop)
- : graph_(graph), dp_(dp), node_id_prop_(node_id_prop) { }
-
- ~mutate_graph_impl() {}
-
- bool is_directed() const
- {
- return
- boost::is_convertible<
- typename boost::graph_traits<MutableGraph>::directed_category,
- boost::directed_tag>::value;
- }
-
- virtual void do_add_vertex(const node_t& node)
- {
- // Add the node to the graph.
- bgl_vertex_t v = add_vertex(graph_);
-
- // Set up a mapping from name to BGL vertex.
- bgl_nodes.insert(std::make_pair(node, v));
-
- // node_id_prop_ allows the caller to see the real id names for nodes.
- put(node_id_prop_, dp_, v, node);
- }
-
- void
- do_add_edge(const edge_t& edge, const node_t& source, const node_t& target)
- {
- std::pair<bgl_edge_t, bool> result =
- add_edge(bgl_nodes[source], bgl_nodes[target], graph_);
-
- if(!result.second) {
- // In the case of no parallel edges allowed
- throw bad_parallel_edge(source, target);
- } else {
- bgl_edges.insert(std::make_pair(edge, result.first));
- }
- }
-
- void
- set_node_property(const id_t& key, const node_t& node, const id_t& value)
- {
- put(key, dp_, bgl_nodes[node], value);
- }
-
- void
- set_edge_property(const id_t& key, const edge_t& edge, const id_t& value)
- {
- put(key, dp_, bgl_edges[edge], value);
- }
-
- protected:
- MutableGraph& graph_;
- dynamic_properties& dp_;
- std::string node_id_prop_;
- std::map<node_t, bgl_vertex_t> bgl_nodes;
- std::map<edge_t, bgl_edge_t> bgl_edges;
-};
-
-bool read_graphviz(std::istream& in, mutate_graph& graph);
-
-} } // end namespace detail::graph
-
-// Parse the passed stream as a GraphViz dot file.
-template <typename MutableGraph>
-bool read_graphviz(std::istream& in, MutableGraph& graph,
- dynamic_properties& dp,
- std::string const& node_id = "node_id")
-{
- detail::graph::mutate_graph_impl<MutableGraph> m_graph(graph, dp, node_id);
- return detail::graph::read_graphviz(in, m_graph);
-}
-
-} // namespace boost
-
-#ifdef BOOST_GRAPH_READ_GRAPHVIZ_ITERATORS
-# include <boost/graph/detail/read_graphviz_spirit.hpp>
-#endif // BOOST_GRAPH_READ_GRAPHVIZ_ITERATORS
-
-#endif // BOOST_GRAPHVIZ_HPP
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Jeremiah Willcock
-// Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_GURSOY_ATUN_LAYOUT_HPP
-#define BOOST_GRAPH_GURSOY_ATUN_LAYOUT_HPP
-
-// Gursoy-Atun graph layout, based on:
-// "Neighbourhood Preserving Load Balancing: A Self-Organizing Approach"
-// in EuroPar 2000, p. 234 of LNCS 1900
-// http://springerlink.metapress.com/link.asp?id=pcu07ew5rhexp9yt
-
-#include <cmath>
-#include <vector>
-#include <exception>
-#include <algorithm>
-
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/linear_congruential.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-namespace boost {
-
-namespace detail {
-
-struct over_distance_limit : public std::exception {};
-
-template <typename PositionMap, typename NodeDistanceMap, typename Topology,
- typename Graph>
-struct update_position_visitor {
- typedef typename Topology::point_type Point;
- PositionMap position_map;
- NodeDistanceMap node_distance;
- const Topology& space;
- Point input_vector;
- double distance_limit;
- double learning_constant;
- double falloff_ratio;
-
- typedef boost::on_examine_vertex event_filter;
-
- typedef typename graph_traits<Graph>::vertex_descriptor
- vertex_descriptor;
-
- update_position_visitor(PositionMap position_map,
- NodeDistanceMap node_distance,
- const Topology& space,
- const Point& input_vector,
- double distance_limit,
- double learning_constant,
- double falloff_ratio):
- position_map(position_map), node_distance(node_distance),
- space(space),
- input_vector(input_vector), distance_limit(distance_limit),
- learning_constant(learning_constant), falloff_ratio(falloff_ratio) {}
-
- void operator()(vertex_descriptor v, const Graph&) const
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::pow;
-#endif
-
- if (get(node_distance, v) > distance_limit)
- throw over_distance_limit();
- Point old_position = get(position_map, v);
- double distance = get(node_distance, v);
- double fraction =
- learning_constant * pow(falloff_ratio, distance * distance);
- put(position_map, v,
- space.move_position_toward(old_position, fraction, input_vector));
- }
-};
-
-template<typename EdgeWeightMap>
-struct gursoy_shortest
-{
- template<typename Graph, typename NodeDistanceMap, typename UpdatePosition>
- static inline void
- run(const Graph& g, typename graph_traits<Graph>::vertex_descriptor s,
- NodeDistanceMap node_distance, UpdatePosition& update_position,
- EdgeWeightMap weight)
- {
- boost::dijkstra_shortest_paths(g, s, weight_map(weight).
- visitor(boost::make_dijkstra_visitor(std::make_pair(
- boost::record_distances(node_distance, boost::on_edge_relaxed()),
- update_position))));
- }
-};
-
-template<>
-struct gursoy_shortest<dummy_property_map>
-{
- template<typename Graph, typename NodeDistanceMap, typename UpdatePosition>
- static inline void
- run(const Graph& g, typename graph_traits<Graph>::vertex_descriptor s,
- NodeDistanceMap node_distance, UpdatePosition& update_position,
- dummy_property_map)
- {
- boost::breadth_first_search(g, s,
- visitor(boost::make_bfs_visitor(std::make_pair(
- boost::record_distances(node_distance, boost::on_tree_edge()),
- update_position))));
- }
-};
-
-} // namespace detail
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap, typename Diameter, typename VertexIndexMap,
- typename EdgeWeightMap>
-void
-gursoy_atun_step
- (const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- Diameter diameter,
- double learning_constant,
- VertexIndexMap vertex_index_map,
- EdgeWeightMap weight)
-{
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::pow;
- using std::exp;
-#endif
-
- typedef typename graph_traits<VertexListAndIncidenceGraph>::vertex_iterator
- vertex_iterator;
- typedef typename graph_traits<VertexListAndIncidenceGraph>::vertex_descriptor
- vertex_descriptor;
- typedef typename Topology::point_type point_type;
- vertex_iterator i, iend;
- std::vector<double> distance_from_input_vector(num_vertices(graph));
- typedef boost::iterator_property_map<std::vector<double>::iterator,
- VertexIndexMap,
- double, double&>
- DistanceFromInputMap;
- DistanceFromInputMap distance_from_input(distance_from_input_vector.begin(),
- vertex_index_map);
- std::vector<double> node_distance_map_vector(num_vertices(graph));
- typedef boost::iterator_property_map<std::vector<double>::iterator,
- VertexIndexMap,
- double, double&>
- NodeDistanceMap;
- NodeDistanceMap node_distance(node_distance_map_vector.begin(),
- vertex_index_map);
- point_type input_vector = space.random_point();
- vertex_descriptor min_distance_loc
- = graph_traits<VertexListAndIncidenceGraph>::null_vertex();
- double min_distance = 0.0;
- bool min_distance_unset = true;
- for (boost::tie(i, iend) = vertices(graph); i != iend; ++i) {
- double this_distance = space.distance(get(position, *i), input_vector);
- put(distance_from_input, *i, this_distance);
- if (min_distance_unset || this_distance < min_distance) {
- min_distance = this_distance;
- min_distance_loc = *i;
- }
- min_distance_unset = false;
- }
- assert (!min_distance_unset); // Graph must have at least one vertex
- boost::detail::update_position_visitor<
- PositionMap, NodeDistanceMap, Topology,
- VertexListAndIncidenceGraph>
- update_position(position, node_distance, space,
- input_vector, diameter, learning_constant,
- exp(-1. / (2 * diameter * diameter)));
- std::fill(node_distance_map_vector.begin(), node_distance_map_vector.end(), 0);
- try {
- typedef detail::gursoy_shortest<EdgeWeightMap> shortest;
- shortest::run(graph, min_distance_loc, node_distance, update_position,
- weight);
- } catch (detail::over_distance_limit) {
- /* Thrown to break out of BFS or Dijkstra early */
- }
-}
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap, typename VertexIndexMap,
- typename EdgeWeightMap>
-void gursoy_atun_refine(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- int nsteps,
- double diameter_initial,
- double diameter_final,
- double learning_constant_initial,
- double learning_constant_final,
- VertexIndexMap vertex_index_map,
- EdgeWeightMap weight)
-{
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::pow;
- using std::exp;
-#endif
-
- typedef typename graph_traits<VertexListAndIncidenceGraph>::vertex_iterator
- vertex_iterator;
- typedef typename graph_traits<VertexListAndIncidenceGraph>::vertex_descriptor
- vertex_descriptor;
- typedef typename Topology::point_type point_type;
- vertex_iterator i, iend;
- double diameter_ratio = (double)diameter_final / diameter_initial;
- double learning_constant_ratio =
- learning_constant_final / learning_constant_initial;
- std::vector<double> distance_from_input_vector(num_vertices(graph));
- typedef boost::iterator_property_map<std::vector<double>::iterator,
- VertexIndexMap,
- double, double&>
- DistanceFromInputMap;
- DistanceFromInputMap distance_from_input(distance_from_input_vector.begin(),
- vertex_index_map);
- std::vector<int> node_distance_map_vector(num_vertices(graph));
- typedef boost::iterator_property_map<std::vector<int>::iterator,
- VertexIndexMap, double, double&>
- NodeDistanceMap;
- NodeDistanceMap node_distance(node_distance_map_vector.begin(),
- vertex_index_map);
- for (int round = 0; round < nsteps; ++round) {
- double part_done = (double)round / (nsteps - 1);
- int diameter = (int)(diameter_initial * pow(diameter_ratio, part_done));
- double learning_constant =
- learning_constant_initial * pow(learning_constant_ratio, part_done);
- gursoy_atun_step(graph, space, position, diameter, learning_constant,
- vertex_index_map, weight);
- }
-}
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap, typename VertexIndexMap,
- typename EdgeWeightMap>
-void gursoy_atun_layout(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- int nsteps,
- double diameter_initial,
- double diameter_final,
- double learning_constant_initial,
- double learning_constant_final,
- VertexIndexMap vertex_index_map,
- EdgeWeightMap weight)
-{
- typedef typename graph_traits<VertexListAndIncidenceGraph>::vertex_iterator
- vertex_iterator;
- vertex_iterator i, iend;
- for (boost::tie(i, iend) = vertices(graph); i != iend; ++i) {
- put(position, *i, space.random_point());
- }
- gursoy_atun_refine(graph, space,
- position, nsteps,
- diameter_initial, diameter_final,
- learning_constant_initial, learning_constant_final,
- vertex_index_map, weight);
-}
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap, typename VertexIndexMap>
-void gursoy_atun_layout(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- int nsteps,
- double diameter_initial,
- double diameter_final,
- double learning_constant_initial,
- double learning_constant_final,
- VertexIndexMap vertex_index_map)
-{
- gursoy_atun_layout(graph, space, position, nsteps,
- diameter_initial, diameter_final,
- learning_constant_initial, learning_constant_final,
- vertex_index_map, dummy_property_map());
-}
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap>
-void gursoy_atun_layout(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- int nsteps,
- double diameter_initial,
- double diameter_final = 1.0,
- double learning_constant_initial = 0.8,
- double learning_constant_final = 0.2)
-{
- gursoy_atun_layout(graph, space, position, nsteps, diameter_initial,
- diameter_final, learning_constant_initial,
- learning_constant_final, get(vertex_index, graph));
-}
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap>
-void gursoy_atun_layout(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- int nsteps)
-{
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif
-
- gursoy_atun_layout(graph, space, position, nsteps,
- sqrt((double)num_vertices(graph)));
-}
-
-template <typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap>
-void gursoy_atun_layout(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position)
-{
- gursoy_atun_layout(graph, space, position, num_vertices(graph));
-}
-
-template<typename VertexListAndIncidenceGraph, typename Topology,
- typename PositionMap, typename P, typename T, typename R>
-void
-gursoy_atun_layout(const VertexListAndIncidenceGraph& graph,
- const Topology& space,
- PositionMap position,
- const bgl_named_params<P,T,R>& params)
-{
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif
-
- std::pair<double, double> diam(sqrt(double(num_vertices(graph))), 1.0);
- std::pair<double, double> learn(0.8, 0.2);
- gursoy_atun_layout(graph, space, position,
- choose_param(get_param(params, iterations_t()),
- num_vertices(graph)),
- choose_param(get_param(params, diameter_range_t()),
- diam).first,
- choose_param(get_param(params, diameter_range_t()),
- diam).second,
- choose_param(get_param(params, learning_constant_range_t()),
- learn).first,
- choose_param(get_param(params, learning_constant_range_t()),
- learn).second,
- choose_const_pmap(get_param(params, vertex_index), graph,
- vertex_index),
- choose_param(get_param(params, edge_weight),
- dummy_property_map()));
-}
-
-/***********************************************************
- * Topologies *
- ***********************************************************/
-template<std::size_t Dims>
-class convex_topology
-{
- struct point
- {
- point() { }
- double& operator[](std::size_t i) {return values[i];}
- const double& operator[](std::size_t i) const {return values[i];}
-
- private:
- double values[Dims];
- };
-
- public:
- typedef point point_type;
-
- double distance(point a, point b) const
- {
- double dist = 0;
- for (std::size_t i = 0; i < Dims; ++i) {
- double diff = b[i] - a[i];
- dist += diff * diff;
- }
- // Exact properties of the distance are not important, as long as
- // < on what this returns matches real distances
- return dist;
- }
-
- point move_position_toward(point a, double fraction, point b) const
- {
- point result;
- for (std::size_t i = 0; i < Dims; ++i)
- result[i] = a[i] + (b[i] - a[i]) * fraction;
- return result;
- }
-};
-
-template<std::size_t Dims,
- typename RandomNumberGenerator = minstd_rand>
-class hypercube_topology : public convex_topology<Dims>
-{
- typedef uniform_01<RandomNumberGenerator, double> rand_t;
-
- public:
- typedef typename convex_topology<Dims>::point_type point_type;
-
- explicit hypercube_topology(double scaling = 1.0)
- : gen_ptr(new RandomNumberGenerator), rand(new rand_t(*gen_ptr)),
- scaling(scaling)
- { }
-
- hypercube_topology(RandomNumberGenerator& gen, double scaling = 1.0)
- : gen_ptr(), rand(new rand_t(gen)), scaling(scaling) { }
-
- point_type random_point() const
- {
- point_type p;
- for (std::size_t i = 0; i < Dims; ++i)
- p[i] = (*rand)() * scaling;
- return p;
- }
-
- private:
- shared_ptr<RandomNumberGenerator> gen_ptr;
- shared_ptr<rand_t> rand;
- double scaling;
-};
-
-template<typename RandomNumberGenerator = minstd_rand>
-class square_topology : public hypercube_topology<2, RandomNumberGenerator>
-{
- typedef hypercube_topology<2, RandomNumberGenerator> inherited;
-
- public:
- explicit square_topology(double scaling = 1.0) : inherited(scaling) { }
-
- square_topology(RandomNumberGenerator& gen, double scaling = 1.0)
- : inherited(gen, scaling) { }
-};
-
-template<typename RandomNumberGenerator = minstd_rand>
-class cube_topology : public hypercube_topology<3, RandomNumberGenerator>
-{
- typedef hypercube_topology<3, RandomNumberGenerator> inherited;
-
- public:
- explicit cube_topology(double scaling = 1.0) : inherited(scaling) { }
-
- cube_topology(RandomNumberGenerator& gen, double scaling = 1.0)
- : inherited(gen, scaling) { }
-};
-
-template<std::size_t Dims,
- typename RandomNumberGenerator = minstd_rand>
-class ball_topology : public convex_topology<Dims>
-{
- typedef uniform_01<RandomNumberGenerator, double> rand_t;
-
- public:
- typedef typename convex_topology<Dims>::point_type point_type;
-
- explicit ball_topology(double radius = 1.0)
- : gen_ptr(new RandomNumberGenerator), rand(new rand_t(*gen_ptr)),
- radius(radius)
- { }
-
- ball_topology(RandomNumberGenerator& gen, double radius = 1.0)
- : gen_ptr(), rand(new rand_t(gen)), radius(radius) { }
-
- point_type random_point() const
- {
- point_type p;
- double dist_sum;
- do {
- dist_sum = 0.0;
- for (std::size_t i = 0; i < Dims; ++i) {
- double x = (*rand)() * 2*radius - radius;
- p[i] = x;
- dist_sum += x * x;
- }
- } while (dist_sum > radius*radius);
- return p;
- }
-
- private:
- shared_ptr<RandomNumberGenerator> gen_ptr;
- shared_ptr<rand_t> rand;
- double radius;
-};
-
-template<typename RandomNumberGenerator = minstd_rand>
-class circle_topology : public ball_topology<2, RandomNumberGenerator>
-{
- typedef ball_topology<2, RandomNumberGenerator> inherited;
-
- public:
- explicit circle_topology(double radius = 1.0) : inherited(radius) { }
-
- circle_topology(RandomNumberGenerator& gen, double radius = 1.0)
- : inherited(gen, radius) { }
-};
-
-template<typename RandomNumberGenerator = minstd_rand>
-class sphere_topology : public ball_topology<3, RandomNumberGenerator>
-{
- typedef ball_topology<3, RandomNumberGenerator> inherited;
-
- public:
- explicit sphere_topology(double radius = 1.0) : inherited(radius) { }
-
- sphere_topology(RandomNumberGenerator& gen, double radius = 1.0)
- : inherited(gen, radius) { }
-};
-
-template<typename RandomNumberGenerator = minstd_rand>
-class heart_topology
-{
- // Heart is defined as the union of three shapes:
- // Square w/ corners (+-1000, -1000), (0, 0), (0, -2000)
- // Circle centered at (-500, -500) radius 500*sqrt(2)
- // Circle centered at (500, -500) radius 500*sqrt(2)
- // Bounding box (-1000, -2000) - (1000, 500*(sqrt(2) - 1))
-
- struct point
- {
- point() { values[0] = 0.0; values[1] = 0.0; }
- point(double x, double y) { values[0] = x; values[1] = y; }
-
- double& operator[](std::size_t i) { return values[i]; }
- double operator[](std::size_t i) const { return values[i]; }
-
- private:
- double values[2];
- };
-
- bool in_heart(point p) const
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::abs;
- using std::pow;
-#endif
-
- if (p[1] < abs(p[0]) - 2000) return false; // Bottom
- if (p[1] <= -1000) return true; // Diagonal of square
- if (pow(p[0] - -500, 2) + pow(p[1] - -500, 2) <= 500000)
- return true; // Left circle
- if (pow(p[0] - 500, 2) + pow(p[1] - -500, 2) <= 500000)
- return true; // Right circle
- return false;
- }
-
- bool segment_within_heart(point p1, point p2) const
- {
- // Assumes that p1 and p2 are within the heart
- if ((p1[0] < 0) == (p2[0] < 0)) return true; // Same side of symmetry line
- if (p1[0] == p2[0]) return true; // Vertical
- double slope = (p2[1] - p1[1]) / (p2[0] - p1[0]);
- double intercept = p1[1] - p1[0] * slope;
- if (intercept > 0) return false; // Crosses between circles
- return true;
- }
-
- typedef uniform_01<RandomNumberGenerator, double> rand_t;
-
- public:
- typedef point point_type;
-
- heart_topology()
- : gen_ptr(new RandomNumberGenerator), rand(new rand_t(*gen_ptr)) { }
-
- heart_topology(RandomNumberGenerator& gen)
- : gen_ptr(), rand(new rand_t(gen)) { }
-
- point random_point() const
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif
-
- point result;
- double sqrt2 = sqrt(2.);
- do {
- result[0] = (*rand)() * (1000 + 1000 * sqrt2) - (500 + 500 * sqrt2);
- result[1] = (*rand)() * (2000 + 500 * (sqrt2 - 1)) - 2000;
- } while (!in_heart(result));
- return result;
- }
-
- double distance(point a, point b) const
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif
- if (segment_within_heart(a, b)) {
- // Straight line
- return sqrt((b[0] - a[0]) * (b[0] - a[0]) + (b[1] - a[1]) * (b[1] - a[1]));
- } else {
- // Straight line bending around (0, 0)
- return sqrt(a[0] * a[0] + a[1] * a[1]) + sqrt(b[0] * b[0] + b[1] * b[1]);
- }
- }
-
- point move_position_toward(point a, double fraction, point b) const
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif
-
- if (segment_within_heart(a, b)) {
- // Straight line
- return point(a[0] + (b[0] - a[0]) * fraction,
- a[1] + (b[1] - a[1]) * fraction);
- } else {
- double distance_to_point_a = sqrt(a[0] * a[0] + a[1] * a[1]);
- double distance_to_point_b = sqrt(b[0] * b[0] + b[1] * b[1]);
- double location_of_point = distance_to_point_a /
- (distance_to_point_a + distance_to_point_b);
- if (fraction < location_of_point)
- return point(a[0] * (1 - fraction / location_of_point),
- a[1] * (1 - fraction / location_of_point));
- else
- return point(
- b[0] * ((fraction - location_of_point) / (1 - location_of_point)),
- b[1] * ((fraction - location_of_point) / (1 - location_of_point)));
- }
- }
-
- private:
- shared_ptr<RandomNumberGenerator> gen_ptr;
- shared_ptr<rand_t> rand;
-};
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_GURSOY_ATUN_LAYOUT_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997-2001 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_INCREMENTAL_COMPONENTS_HPP
-#define BOOST_INCREMENTAL_COMPONENTS_HPP
-
-#include <boost/detail/iterator.hpp>
-#include <boost/graph/detail/incremental_components.hpp>
-
-namespace boost {
-
- // A connected component algorithm for the case when dynamically
- // adding (but not removing) edges is common. The
- // incremental_components() function is a preparing operation. Call
- // same_component to check whether two vertices are in the same
- // component, or use disjoint_set::find_set to determine the
- // representative for a vertex.
-
- // This version of connected components does not require a full
- // Graph. Instead, it just needs an edge list, where the vertices of
- // each edge need to be of integer type. The edges are assumed to
- // be undirected. The other difference is that the result is stored in
- // a container, instead of just a decorator. The container should be
- // empty before the algorithm is called. It will grow during the
- // course of the algorithm. The container must be a model of
- // BackInsertionSequence and RandomAccessContainer
- // (std::vector is a good choice). After running the algorithm the
- // index container will map each vertex to the representative
- // vertex of the component to which it belongs.
- //
- // Adapted from an implementation by Alex Stepanov. The disjoint
- // sets data structure is from Tarjan's "Data Structures and Network
- // Algorithms", and the application to connected components is
- // similar to the algorithm described in Ch. 22 of "Intro to
- // Algorithms" by Cormen, et. all.
- //
- // RankContainer is a random accessable container (operator[] is
- // defined) with a value type that can represent an integer part of
- // a binary log of the value type of the corresponding
- // ParentContainer (char is always enough) its size_type is no less
- // than the size_type of the corresponding ParentContainer
-
- // An implementation of disjoint sets can be found in
- // boost/pending/disjoint_sets.hpp
-
- template <class EdgeListGraph, class DisjointSets>
- void incremental_components(EdgeListGraph& g, DisjointSets& ds)
- {
- typename graph_traits<EdgeListGraph>::edge_iterator e, end;
- for (tie(e,end) = edges(g); e != end; ++e)
- ds.union_set(source(*e,g),target(*e,g));
- }
-
- template <class ParentIterator>
- void compress_components(ParentIterator first, ParentIterator last)
- {
- for (ParentIterator current = first; current != last; ++current)
- detail::find_representative_with_full_compression(first, current-first);
- }
-
- template <class ParentIterator>
- typename boost::detail::iterator_traits<ParentIterator>::difference_type
- component_count(ParentIterator first, ParentIterator last)
- {
- std::ptrdiff_t count = 0;
- for (ParentIterator current = first; current != last; ++current)
- if (*current == current - first) ++count;
- return count;
- }
-
- // This algorithm can be applied to the result container of the
- // connected_components algorithm to normalize
- // the components.
- template <class ParentIterator>
- void normalize_components(ParentIterator first, ParentIterator last)
- {
- for (ParentIterator current = first; current != last; ++current)
- detail::normalize_node(first, current - first);
- }
-
- template <class VertexListGraph, class DisjointSets>
- void initialize_incremental_components(VertexListGraph& G, DisjointSets& ds)
- {
- typename graph_traits<VertexListGraph>
- ::vertex_iterator v, vend;
- for (tie(v, vend) = vertices(G); v != vend; ++v)
- ds.make_set(*v);
- }
-
- template <class Vertex, class DisjointSet>
- inline bool same_component(Vertex u, Vertex v, DisjointSet& ds)
- {
- return ds.find_set(u) == ds.find_set(v);
- }
-
- // considering changing the so that it initializes with a pair of
- // vertex iterators and a parent PA.
-
- template <class IndexT>
- class component_index
- {
- public://protected: (avoid friends for now)
- typedef std::vector<IndexT> MyIndexContainer;
- MyIndexContainer header;
- MyIndexContainer index;
- typedef typename MyIndexContainer::size_type SizeT;
- typedef typename MyIndexContainer::const_iterator IndexIter;
- public:
- typedef detail::component_iterator<IndexIter, IndexT, SizeT>
- component_iterator;
- class component {
- friend class component_index;
- protected:
- IndexT number;
- const component_index<IndexT>* comp_ind_ptr;
- component(IndexT i, const component_index<IndexT>* p)
- : number(i), comp_ind_ptr(p) {}
- public:
- typedef component_iterator iterator;
- typedef component_iterator const_iterator;
- typedef IndexT value_type;
- iterator begin() const {
- return iterator( comp_ind_ptr->index.begin(),
- (comp_ind_ptr->header)[number] );
- }
- iterator end() const {
- return iterator( comp_ind_ptr->index.begin(),
- comp_ind_ptr->index.size() );
- }
- };
- typedef SizeT size_type;
- typedef component value_type;
-
-#if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
- template <class Iterator>
- component_index(Iterator first, Iterator last)
- : index(std::distance(first, last))
- {
- std::copy(first, last, index.begin());
- detail::construct_component_index(index, header);
- }
-#else
- template <class Iterator>
- component_index(Iterator first, Iterator last)
- : index(first, last)
- {
- detail::construct_component_index(index, header);
- }
-#endif
-
- component operator[](IndexT i) const {
- return component(i, this);
- }
- SizeT size() const {
- return header.size();
- }
-
- };
-
-} // namespace boost
-
-#endif // BOOST_INCREMENTAL_COMPONENTS_HPP
+++ /dev/null
-// Copyright (C) 2001 Jeremy Siek, Douglas Gregor, Brian Osman
-//
-// Permission to copy, use, sell and distribute this software is granted
-// provided this copyright notice appears in all copies.
-// Permission to modify the code and to distribute modified code is granted
-// provided this copyright notice appears in all copies, and a notice
-// that the code was modified is included with the copyright notice.
-//
-// This software is provided "as is" without express or implied warranty,
-// and with no claim as to its suitability for any purpose.
-#ifndef BOOST_GRAPH_ISOMORPHISM_HPP
-#define BOOST_GRAPH_ISOMORPHISM_HPP
-
-#include <utility>
-#include <vector>
-#include <iterator>
-#include <algorithm>
-#include <boost/config.hpp>
-#include <boost/graph/depth_first_search.hpp>
-#include <boost/utility.hpp>
-#include <boost/detail/algorithm.hpp>
-#include <boost/pending/indirect_cmp.hpp> // for make_indirect_pmap
-
-#ifndef BOOST_GRAPH_ITERATION_MACROS_HPP
-#define BOOST_ISO_INCLUDED_ITER_MACROS // local macro, see bottom of file
-#include <boost/graph/iteration_macros.hpp>
-#endif
-
-namespace boost {
-
- namespace detail {
-
- template <typename Graph1, typename Graph2, typename IsoMapping,
- typename Invariant1, typename Invariant2,
- typename IndexMap1, typename IndexMap2>
- class isomorphism_algo
- {
- typedef typename graph_traits<Graph1>::vertex_descriptor vertex1_t;
- typedef typename graph_traits<Graph2>::vertex_descriptor vertex2_t;
- typedef typename graph_traits<Graph1>::edge_descriptor edge1_t;
- typedef typename graph_traits<Graph1>::vertices_size_type size_type;
- typedef typename Invariant1::result_type invar1_value;
- typedef typename Invariant2::result_type invar2_value;
-
- const Graph1& G1;
- const Graph2& G2;
- IsoMapping f;
- Invariant1 invariant1;
- Invariant2 invariant2;
- std::size_t max_invariant;
- IndexMap1 index_map1;
- IndexMap2 index_map2;
-
- std::vector<vertex1_t> dfs_vertices;
- typedef typename std::vector<vertex1_t>::iterator vertex_iter;
- std::vector<int> dfs_num_vec;
- typedef safe_iterator_property_map<typename std::vector<int>::iterator,
- IndexMap1
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , int, int&
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- > DFSNumMap;
- DFSNumMap dfs_num;
- std::vector<edge1_t> ordered_edges;
- typedef typename std::vector<edge1_t>::iterator edge_iter;
-
- std::vector<char> in_S_vec;
- typedef safe_iterator_property_map<typename std::vector<char>::iterator,
- IndexMap2
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , char, char&
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- > InSMap;
- InSMap in_S;
-
- int num_edges_on_k;
-
- friend struct compare_multiplicity;
- struct compare_multiplicity
- {
- compare_multiplicity(Invariant1 invariant1, size_type* multiplicity)
- : invariant1(invariant1), multiplicity(multiplicity) { }
- bool operator()(const vertex1_t& x, const vertex1_t& y) const {
- return multiplicity[invariant1(x)] < multiplicity[invariant1(y)];
- }
- Invariant1 invariant1;
- size_type* multiplicity;
- };
-
- struct record_dfs_order : default_dfs_visitor
- {
- record_dfs_order(std::vector<vertex1_t>& v, std::vector<edge1_t>& e)
- : vertices(v), edges(e) { }
-
- void discover_vertex(vertex1_t v, const Graph1&) const {
- vertices.push_back(v);
- }
- void examine_edge(edge1_t e, const Graph1& G1) const {
- edges.push_back(e);
- }
- std::vector<vertex1_t>& vertices;
- std::vector<edge1_t>& edges;
- };
-
- struct edge_cmp {
- edge_cmp(const Graph1& G1, DFSNumMap dfs_num)
- : G1(G1), dfs_num(dfs_num) { }
- bool operator()(const edge1_t& e1, const edge1_t& e2) const {
- using namespace std;
- int u1 = dfs_num[source(e1,G1)], v1 = dfs_num[target(e1,G1)];
- int u2 = dfs_num[source(e2,G1)], v2 = dfs_num[target(e2,G1)];
- int m1 = (max)(u1, v1);
- int m2 = (max)(u2, v2);
- // lexicographical comparison
- return std::make_pair(m1, std::make_pair(u1, v1))
- < std::make_pair(m2, std::make_pair(u2, v2));
- }
- const Graph1& G1;
- DFSNumMap dfs_num;
- };
-
- public:
- isomorphism_algo(const Graph1& G1, const Graph2& G2, IsoMapping f,
- Invariant1 invariant1, Invariant2 invariant2, std::size_t max_invariant,
- IndexMap1 index_map1, IndexMap2 index_map2)
- : G1(G1), G2(G2), f(f), invariant1(invariant1), invariant2(invariant2),
- max_invariant(max_invariant),
- index_map1(index_map1), index_map2(index_map2)
- {
- in_S_vec.resize(num_vertices(G1));
- in_S = make_safe_iterator_property_map
- (in_S_vec.begin(), in_S_vec.size(), index_map2
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , in_S_vec.front()
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- );
- }
-
- bool test_isomorphism()
- {
- {
- std::vector<invar1_value> invar1_array;
- BGL_FORALL_VERTICES_T(v, G1, Graph1)
- invar1_array.push_back(invariant1(v));
- sort(invar1_array);
-
- std::vector<invar2_value> invar2_array;
- BGL_FORALL_VERTICES_T(v, G2, Graph2)
- invar2_array.push_back(invariant2(v));
- sort(invar2_array);
- if (! equal(invar1_array, invar2_array))
- return false;
- }
-
- std::vector<vertex1_t> V_mult;
- BGL_FORALL_VERTICES_T(v, G1, Graph1)
- V_mult.push_back(v);
- {
- std::vector<size_type> multiplicity(max_invariant, 0);
- BGL_FORALL_VERTICES_T(v, G1, Graph1)
- ++multiplicity[invariant1(v)];
- sort(V_mult, compare_multiplicity(invariant1, &multiplicity[0]));
- }
-
- std::vector<default_color_type> color_vec(num_vertices(G1));
- safe_iterator_property_map<std::vector<default_color_type>::iterator,
- IndexMap1
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , default_color_type, default_color_type&
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- >
- color_map(color_vec.begin(), color_vec.size(), index_map1);
- record_dfs_order dfs_visitor(dfs_vertices, ordered_edges);
- typedef color_traits<default_color_type> Color;
- for (vertex_iter u = V_mult.begin(); u != V_mult.end(); ++u) {
- if (color_map[*u] == Color::white()) {
- dfs_visitor.start_vertex(*u, G1);
- depth_first_visit(G1, *u, dfs_visitor, color_map);
- }
- }
- // Create the dfs_num array and dfs_num_map
- dfs_num_vec.resize(num_vertices(G1));
- dfs_num = make_safe_iterator_property_map(dfs_num_vec.begin(),
- dfs_num_vec.size(),
- index_map1
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , dfs_num_vec.front()
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- );
- size_type n = 0;
- for (vertex_iter v = dfs_vertices.begin(); v != dfs_vertices.end(); ++v)
- dfs_num[*v] = n++;
-
- sort(ordered_edges, edge_cmp(G1, dfs_num));
-
-
- int dfs_num_k = -1;
- return this->match(ordered_edges.begin(), dfs_num_k);
- }
-
- private:
- bool match(edge_iter iter, int dfs_num_k)
- {
- if (iter != ordered_edges.end()) {
- vertex1_t i = source(*iter, G1), j = target(*iter, G2);
- if (dfs_num[i] > dfs_num_k) {
- vertex1_t kp1 = dfs_vertices[dfs_num_k + 1];
- BGL_FORALL_VERTICES_T(u, G2, Graph2) {
- if (invariant1(kp1) == invariant2(u) && in_S[u] == false) {
- f[kp1] = u;
- in_S[u] = true;
- num_edges_on_k = 0;
-
- if (match(iter, dfs_num_k + 1))
-#if 0
- // dwa 2003/7/11 -- this *HAS* to be a bug!
- ;
-#endif
- return true;
-
- in_S[u] = false;
- }
- }
-
- }
- else if (dfs_num[j] > dfs_num_k) {
- vertex1_t k = dfs_vertices[dfs_num_k];
- num_edges_on_k -=
- count_if(adjacent_vertices(f[k], G2), make_indirect_pmap(in_S));
-
- for (int jj = 0; jj < dfs_num_k; ++jj) {
- vertex1_t j = dfs_vertices[jj];
- num_edges_on_k -= count(adjacent_vertices(f[j], G2), f[k]);
- }
-
- if (num_edges_on_k != 0)
- return false;
- BGL_FORALL_ADJ_T(f[i], v, G2, Graph2)
- if (invariant2(v) == invariant1(j) && in_S[v] == false) {
- f[j] = v;
- in_S[v] = true;
- num_edges_on_k = 1;
- BOOST_USING_STD_MAX();
- int next_k = max BOOST_PREVENT_MACRO_SUBSTITUTION(dfs_num_k, max BOOST_PREVENT_MACRO_SUBSTITUTION(dfs_num[i], dfs_num[j]));
- if (match(next(iter), next_k))
- return true;
- in_S[v] = false;
- }
-
-
- }
- else {
- if (contains(adjacent_vertices(f[i], G2), f[j])) {
- ++num_edges_on_k;
- if (match(next(iter), dfs_num_k))
- return true;
- }
-
- }
- } else
- return true;
- return false;
- }
-
- };
-
-
- template <typename Graph, typename InDegreeMap>
- void compute_in_degree(const Graph& g, InDegreeMap in_degree_map)
- {
- BGL_FORALL_VERTICES_T(v, g, Graph)
- put(in_degree_map, v, 0);
-
- BGL_FORALL_VERTICES_T(u, g, Graph)
- BGL_FORALL_ADJ_T(u, v, g, Graph)
- put(in_degree_map, v, get(in_degree_map, v) + 1);
- }
-
- } // namespace detail
-
-
- template <typename InDegreeMap, typename Graph>
- class degree_vertex_invariant
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename graph_traits<Graph>::degree_size_type size_type;
- public:
- typedef vertex_t argument_type;
- typedef size_type result_type;
-
- degree_vertex_invariant(const InDegreeMap& in_degree_map, const Graph& g)
- : m_in_degree_map(in_degree_map), m_g(g) { }
-
- size_type operator()(vertex_t v) const {
- return (num_vertices(m_g) + 1) * out_degree(v, m_g)
- + get(m_in_degree_map, v);
- }
- // The largest possible vertex invariant number
- size_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const {
- return num_vertices(m_g) * num_vertices(m_g) + num_vertices(m_g);
- }
- private:
- InDegreeMap m_in_degree_map;
- const Graph& m_g;
- };
-
-
- template <typename Graph1, typename Graph2, typename IsoMapping,
- typename Invariant1, typename Invariant2,
- typename IndexMap1, typename IndexMap2>
- bool isomorphism(const Graph1& G1, const Graph2& G2, IsoMapping f,
- Invariant1 invariant1, Invariant2 invariant2,
- std::size_t max_invariant,
- IndexMap1 index_map1, IndexMap2 index_map2)
-
- {
- // Graph requirements
- function_requires< VertexListGraphConcept<Graph1> >();
- function_requires< EdgeListGraphConcept<Graph1> >();
- function_requires< VertexListGraphConcept<Graph2> >();
- function_requires< BidirectionalGraphConcept<Graph2> >();
-
- typedef typename graph_traits<Graph1>::vertex_descriptor vertex1_t;
- typedef typename graph_traits<Graph2>::vertex_descriptor vertex2_t;
- typedef typename graph_traits<Graph1>::vertices_size_type size_type;
-
- // Vertex invariant requirement
- function_requires< AdaptableUnaryFunctionConcept<Invariant1,
- size_type, vertex1_t> >();
- function_requires< AdaptableUnaryFunctionConcept<Invariant2,
- size_type, vertex2_t> >();
-
- // Property map requirements
- function_requires< ReadWritePropertyMapConcept<IsoMapping, vertex1_t> >();
- typedef typename property_traits<IsoMapping>::value_type IsoMappingValue;
- BOOST_STATIC_ASSERT((is_same<IsoMappingValue, vertex2_t>::value));
-
- function_requires< ReadablePropertyMapConcept<IndexMap1, vertex1_t> >();
- typedef typename property_traits<IndexMap1>::value_type IndexMap1Value;
- BOOST_STATIC_ASSERT((is_convertible<IndexMap1Value, size_type>::value));
-
- function_requires< ReadablePropertyMapConcept<IndexMap2, vertex2_t> >();
- typedef typename property_traits<IndexMap2>::value_type IndexMap2Value;
- BOOST_STATIC_ASSERT((is_convertible<IndexMap2Value, size_type>::value));
-
- if (num_vertices(G1) != num_vertices(G2))
- return false;
- if (num_vertices(G1) == 0 && num_vertices(G2) == 0)
- return true;
-
- detail::isomorphism_algo<Graph1, Graph2, IsoMapping, Invariant1,
- Invariant2, IndexMap1, IndexMap2>
- algo(G1, G2, f, invariant1, invariant2, max_invariant,
- index_map1, index_map2);
- return algo.test_isomorphism();
- }
-
-
- namespace detail {
-
- template <typename Graph1, typename Graph2,
- typename IsoMapping,
- typename IndexMap1, typename IndexMap2,
- typename P, typename T, typename R>
- bool isomorphism_impl(const Graph1& G1, const Graph2& G2,
- IsoMapping f, IndexMap1 index_map1, IndexMap2 index_map2,
- const bgl_named_params<P,T,R>& params)
- {
- std::vector<std::size_t> in_degree1_vec(num_vertices(G1));
- typedef safe_iterator_property_map<std::vector<std::size_t>::iterator,
- IndexMap1
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , std::size_t, std::size_t&
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- > InDeg1;
- InDeg1 in_degree1(in_degree1_vec.begin(), in_degree1_vec.size(), index_map1);
- compute_in_degree(G1, in_degree1);
-
- std::vector<std::size_t> in_degree2_vec(num_vertices(G2));
- typedef safe_iterator_property_map<std::vector<std::size_t>::iterator,
- IndexMap2
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , std::size_t, std::size_t&
-#endif /* BOOST_NO_STD_ITERATOR_TRAITS */
- > InDeg2;
- InDeg2 in_degree2(in_degree2_vec.begin(), in_degree2_vec.size(), index_map2);
- compute_in_degree(G2, in_degree2);
-
- degree_vertex_invariant<InDeg1, Graph1> invariant1(in_degree1, G1);
- degree_vertex_invariant<InDeg2, Graph2> invariant2(in_degree2, G2);
-
- return isomorphism(G1, G2, f,
- choose_param(get_param(params, vertex_invariant1_t()), invariant1),
- choose_param(get_param(params, vertex_invariant2_t()), invariant2),
- choose_param(get_param(params, vertex_max_invariant_t()), (invariant2.max)()),
- index_map1, index_map2
- );
- }
-
- } // namespace detail
-
-
- // Named parameter interface
- template <typename Graph1, typename Graph2, class P, class T, class R>
- bool isomorphism(const Graph1& g1,
- const Graph2& g2,
- const bgl_named_params<P,T,R>& params)
- {
- typedef typename graph_traits<Graph2>::vertex_descriptor vertex2_t;
- typename std::vector<vertex2_t>::size_type n = num_vertices(g1);
- std::vector<vertex2_t> f(n);
- return detail::isomorphism_impl
- (g1, g2,
- choose_param(get_param(params, vertex_isomorphism_t()),
- make_safe_iterator_property_map(f.begin(), f.size(),
- choose_const_pmap(get_param(params, vertex_index1),
- g1, vertex_index), vertex2_t())),
- choose_const_pmap(get_param(params, vertex_index1), g1, vertex_index),
- choose_const_pmap(get_param(params, vertex_index2), g2, vertex_index),
- params
- );
- }
-
- // All defaults interface
- template <typename Graph1, typename Graph2>
- bool isomorphism(const Graph1& g1, const Graph2& g2)
- {
- return isomorphism(g1, g2,
- bgl_named_params<int, buffer_param_t>(0));// bogus named param
- }
-
-
- // Verify that the given mapping iso_map from the vertices of g1 to the
- // vertices of g2 describes an isomorphism.
- // Note: this could be made much faster by specializing based on the graph
- // concepts modeled, but since we're verifying an O(n^(lg n)) algorithm,
- // O(n^4) won't hurt us.
- template<typename Graph1, typename Graph2, typename IsoMap>
- inline bool verify_isomorphism(const Graph1& g1, const Graph2& g2, IsoMap iso_map)
- {
-#if 0
- // problematic for filtered_graph!
- if (num_vertices(g1) != num_vertices(g2) || num_edges(g1) != num_edges(g2))
- return false;
-#endif
-
- for (typename graph_traits<Graph1>::edge_iterator e1 = edges(g1).first;
- e1 != edges(g1).second; ++e1) {
- bool found_edge = false;
- for (typename graph_traits<Graph2>::edge_iterator e2 = edges(g2).first;
- e2 != edges(g2).second && !found_edge; ++e2) {
- if (source(*e2, g2) == get(iso_map, source(*e1, g1)) &&
- target(*e2, g2) == get(iso_map, target(*e1, g1))) {
- found_edge = true;
- }
- }
-
- if (!found_edge)
- return false;
- }
-
- return true;
- }
-
-} // namespace boost
-
-#ifdef BOOST_ISO_INCLUDED_ITER_MACROS
-#undef BOOST_ISO_INCLUDED_ITER_MACROS
-#include <boost/graph/iteration_macros_undef.hpp>
-#endif
-
-#endif // BOOST_GRAPH_ISOMORPHISM_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2001 Indiana University
-// Author: Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_ITERATION_MACROS_HPP
-#define BOOST_GRAPH_ITERATION_MACROS_HPP
-
-#define BGL_CAT(x,y) x ## y
-#define BGL_FIRST(linenum) BGL_CAT(bgl_first_,linenum)
-#define BGL_LAST(linenum) BGL_CAT(bgl_last_,linenum)
-
-/*
- BGL_FORALL_VERTICES_T(v, g, graph_t) // This is on line 9
- expands to the following, but all on the same line
-
- for (typename boost::graph_traits<graph_t>::vertex_iterator
- bgl_first_9 = vertices(g).first, bgl_last_9 = vertices(g).second;
- bgl_first_9 != bgl_last_9; bgl_first_9 = bgl_last_9)
- for (typename boost::graph_traits<graph_t>::vertex_descriptor v;
- bgl_first_9 != bgl_last ? (v = *bgl_first_9, true) : false;
- ++bgl_first_9)
-
- The purpose of having two for-loops is just to provide a place to
- declare both the iterator and value variables. There is really only
- one loop. The stopping condition gets executed two more times than it
- usually would be, oh well. The reason for the bgl_first_9 = bgl_last_9
- in the outer for-loop is in case the user puts a break statement
- in the inner for-loop.
-
- The other macros work in a similar fashion.
-
- Use the _T versions when the graph type is a template parameter or
- dependent on a template parameter. Otherwise use the non _T versions.
-
- */
-
-
-#define BGL_FORALL_VERTICES_T(VNAME, GNAME, GraphType) \
-for (typename boost::graph_traits<GraphType>::vertex_iterator \
- BGL_FIRST(__LINE__) = vertices(GNAME).first, BGL_LAST(__LINE__) = vertices(GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
- for (typename boost::graph_traits<GraphType>::vertex_descriptor VNAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (VNAME = *BGL_FIRST(__LINE__), true):false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_VERTICES(VNAME, GNAME, GraphType) \
-for (boost::graph_traits<GraphType>::vertex_iterator \
- BGL_FIRST(__LINE__) = vertices(GNAME).first, BGL_LAST(__LINE__) = vertices(GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
- for (boost::graph_traits<GraphType>::vertex_descriptor VNAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (VNAME = *BGL_FIRST(__LINE__), true):false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_EDGES_T(ENAME, GNAME, GraphType) \
-for (typename boost::graph_traits<GraphType>::edge_iterator \
- BGL_FIRST(__LINE__) = edges(GNAME).first, BGL_LAST(__LINE__) = edges(GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
- for (typename boost::graph_traits<GraphType>::edge_descriptor ENAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (ENAME = *BGL_FIRST(__LINE__), true):false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_EDGES(ENAME, GNAME, GraphType) \
-for (boost::graph_traits<GraphType>::edge_iterator \
- BGL_FIRST(__LINE__) = edges(GNAME).first, BGL_LAST(__LINE__) = edges(GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
- for (boost::graph_traits<GraphType>::edge_descriptor ENAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (ENAME = *BGL_FIRST(__LINE__), true):false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_ADJ_T(UNAME, VNAME, GNAME, GraphType) \
-for (typename boost::graph_traits<GraphType>::adjacency_iterator \
- BGL_FIRST(__LINE__) = adjacent_vertices(UNAME, GNAME).first,\
- BGL_LAST(__LINE__) = adjacent_vertices(UNAME, GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
-for (typename boost::graph_traits<GraphType>::vertex_descriptor VNAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (VNAME = *BGL_FIRST(__LINE__), true) : false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_ADJ(UNAME, VNAME, GNAME, GraphType) \
-for (boost::graph_traits<GraphType>::adjacency_iterator \
- BGL_FIRST(__LINE__) = adjacent_vertices(UNAME, GNAME).first,\
- BGL_LAST(__LINE__) = adjacent_vertices(UNAME, GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
-for (boost::graph_traits<GraphType>::vertex_descriptor VNAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (VNAME = *BGL_FIRST(__LINE__), true) : false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_OUTEDGES_T(UNAME, ENAME, GNAME, GraphType) \
-for (typename boost::graph_traits<GraphType>::out_edge_iterator \
- BGL_FIRST(__LINE__) = out_edges(UNAME, GNAME).first,\
- BGL_LAST(__LINE__) = out_edges(UNAME, GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
-for (typename boost::graph_traits<GraphType>::edge_descriptor ENAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (ENAME = *BGL_FIRST(__LINE__), true) : false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_OUTEDGES(UNAME, ENAME, GNAME, GraphType) \
-for (boost::graph_traits<GraphType>::out_edge_iterator \
- BGL_FIRST(__LINE__) = out_edges(UNAME, GNAME).first,\
- BGL_LAST(__LINE__) = out_edges(UNAME, GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
-for (boost::graph_traits<GraphType>::edge_descriptor ENAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (ENAME = *BGL_FIRST(__LINE__), true) : false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_INEDGES_T(UNAME, ENAME, GNAME, GraphType) \
-for (typename boost::graph_traits<GraphType>::in_edge_iterator \
- BGL_FIRST(__LINE__) = in_edges(UNAME, GNAME).first,\
- BGL_LAST(__LINE__) = in_edges(UNAME, GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
-for (typename boost::graph_traits<GraphType>::edge_descriptor ENAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (ENAME = *BGL_FIRST(__LINE__), true) : false; \
- ++BGL_FIRST(__LINE__))
-
-#define BGL_FORALL_INEDGES(UNAME, ENAME, GNAME, GraphType) \
-for (boost::graph_traits<GraphType>::in_edge_iterator \
- BGL_FIRST(__LINE__) = in_edges(UNAME, GNAME).first,\
- BGL_LAST(__LINE__) = in_edges(UNAME, GNAME).second; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__); BGL_FIRST(__LINE__) = BGL_LAST(__LINE__)) \
-for (boost::graph_traits<GraphType>::edge_descriptor ENAME; \
- BGL_FIRST(__LINE__) != BGL_LAST(__LINE__) ? (ENAME = *BGL_FIRST(__LINE__), true) : false; \
- ++BGL_FIRST(__LINE__))
-
-#endif // BOOST_GRAPH_ITERATION_MACROS_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2002 Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_ITERATION_MACROS_HPP
-
-#undef BOOST_GRAPH_ITERATION_MACROS_HPP
-#undef BGL_CAT
-#undef BGL_FIRST
-#undef BGL_LAST
-#undef BGL_FORALL_VERTICES
-#undef BGL_FORALL_EDGES
-#undef BGL_FORALL_ADJACENT
-#undef BGL_FORALL_OUTEDGES
-#undef BGL_FORALL_INEDGES
-
-#endif
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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 implements the function
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class P, class T, class R>
- bool
- johnson_all_pairs_shortest_paths
- (VertexAndEdgeListGraph& g,
- DistanceMatrix& D,
- const bgl_named_params<P, T, R>& params)
- */
-
-#ifndef BOOST_GRAPH_JOHNSON_HPP
-#define BOOST_GRAPH_JOHNSON_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/bellman_ford_shortest_paths.hpp>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/pending/ct_if.hpp>
-#include <boost/type_traits/same_traits.hpp>
-
-namespace boost {
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class VertexID, class Weight, class DistanceZero>
- bool
- johnson_all_pairs_shortest_paths(VertexAndEdgeListGraph& g1,
- DistanceMatrix& D,
- VertexID id1, Weight w1, DistanceZero zero)
- {
- typedef graph_traits<VertexAndEdgeListGraph> Traits1;
- typedef typename property_traits<Weight>::value_type DT;
- function_requires< BasicMatrixConcept<DistanceMatrix,
- typename Traits1::vertices_size_type, DT> >();
-
- typedef typename Traits1::directed_category DirCat;
- bool is_undirected = is_same<DirCat, undirected_tag>::value;
-
- typedef adjacency_list<vecS, vecS, directedS,
- property< vertex_distance_t, DT>,
- property< edge_weight_t, DT,
- property< edge_weight2_t, DT > > > Graph2;
- typedef graph_traits<Graph2> Traits2;
-
- Graph2 g2(num_vertices(g1) + 1);
- typename property_map<Graph2, edge_weight_t>::type
- w = get(edge_weight, g2);
- typename property_map<Graph2, edge_weight2_t>::type
- w_hat = get(edge_weight2, g2);
- typename property_map<Graph2, vertex_distance_t>::type
- d = get(vertex_distance, g2);
- typedef typename property_map<Graph2, vertex_index_t>::type VertexID2;
- VertexID2 id2 = get(vertex_index, g2);
-
- // Construct g2 where V[g2] = V[g1] U {s}
- // and E[g2] = E[g1] U {(s,v)| v in V[g1]}
- std::vector<typename Traits1::vertex_descriptor>
- verts1(num_vertices(g1) + 1);
- typename Traits2::vertex_descriptor s = *vertices(g2).first;
- {
- typename Traits1::vertex_iterator v, v_end;
- int i = 1;
- for (tie(v, v_end) = vertices(g1); v != v_end; ++v, ++i) {
- typename Traits2::edge_descriptor e; bool z;
- tie(e, z) = add_edge(s, get(id1, *v) + 1, g2);
- put(w, e, zero);
- verts1[i] = *v;
- }
- typename Traits1::edge_iterator e, e_end;
- for (tie(e, e_end) = edges(g1); e != e_end; ++e) {
- typename Traits2::edge_descriptor e2; bool z;
- tie(e2, z) = add_edge(get(id1, source(*e, g1)) + 1,
- get(id1, target(*e, g1)) + 1, g2);
- put(w, e2, get(w1, *e));
- if (is_undirected) {
- tie(e2, z) = add_edge(get(id1, target(*e, g1)) + 1,
- get(id1, source(*e, g1)) + 1, g2);
- put(w, e2, get(w1, *e));
- }
- }
- }
- typename Traits2::vertex_iterator v, v_end, u, u_end;
- typename Traits2::edge_iterator e, e_end;
- std::vector<DT> h_vec(num_vertices(g2));
- typedef typename std::vector<DT>::iterator iter_t;
- iterator_property_map<iter_t,VertexID2,DT,DT&> h(h_vec.begin(), id2);
-
- DT inf = (std::numeric_limits<DT>::max)();
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v)
- d[*v] = inf;
-
- put(d, s, zero);
- // Using the non-named parameter versions of bellman_ford and
- // dijkstra for portability reasons.
- dummy_property_map pred; closed_plus<DT> combine;
- std::less<DT> compare; bellman_visitor<> bvis;
- if (bellman_ford_shortest_paths
- (g2, num_vertices(g2), w, pred, d, combine, compare, bvis)) {
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v)
- put(h, *v, get(d, *v));
- // Reweight the edges to remove negatives
- for (tie(e, e_end) = edges(g2); e != e_end; ++e) {
- typename Traits2::vertex_descriptor a = source(*e, g2),
- b = target(*e, g2);
- put(w_hat, *e, get(w, *e) + get(h, a) - get(h, b));
- }
- for (tie(u, u_end) = vertices(g2); u != u_end; ++u) {
- dijkstra_visitor<> dvis;
- dijkstra_shortest_paths
- (g2, *u, pred, d, w_hat, id2, compare, combine, inf, zero,dvis);
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v) {
- if (*u != s && *v != s) {
- typename Traits1::vertex_descriptor u1, v1;
- u1 = verts1[id2[*u]]; v1 = verts1[id2[*v]];
- D[id2[*u]-1][id2[*v]-1] = get(d, *v) + get(h, *v) - get(h, *u);
- }
- }
- }
- return true;
- } else
- return false;
- }
-
- namespace detail {
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class P, class T, class R, class Weight,
- class VertexID>
- bool
- johnson_dispatch(VertexAndEdgeListGraph& g,
- DistanceMatrix& D,
- const bgl_named_params<P, T, R>& params,
- Weight w, VertexID id)
- {
- typedef typename property_traits<Weight>::value_type WT;
-
- return johnson_all_pairs_shortest_paths
- (g, D, id, w,
- choose_param(get_param(params, distance_zero_t()), WT()) );
- }
-
- } // namespace detail
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix,
- class P, class T, class R>
- bool
- johnson_all_pairs_shortest_paths
- (VertexAndEdgeListGraph& g,
- DistanceMatrix& D,
- const bgl_named_params<P, T, R>& params)
- {
- return detail::johnson_dispatch
- (g, D, params,
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index)
- );
- }
-
- template <class VertexAndEdgeListGraph, class DistanceMatrix>
- bool
- johnson_all_pairs_shortest_paths
- (VertexAndEdgeListGraph& g, DistanceMatrix& D)
- {
- bgl_named_params<int,int> params(1);
- return detail::johnson_dispatch
- (g, D, params, get(edge_weight, g), get(vertex_index, g));
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_JOHNSON_HPP
-
-
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_KAMADA_KAWAI_SPRING_LAYOUT_HPP
-#define BOOST_GRAPH_KAMADA_KAWAI_SPRING_LAYOUT_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/johnson_all_pairs_shortest.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <utility>
-#include <iterator>
-#include <vector>
-#include <boost/limits.hpp>
-#include <cmath>
-
-namespace boost {
- namespace detail { namespace graph {
- /**
- * Denotes an edge or display area side length used to scale a
- * Kamada-Kawai drawing.
- */
- template<bool Edge, typename T>
- struct edge_or_side
- {
- explicit edge_or_side(T value) : value(value) {}
-
- T value;
- };
-
- /**
- * Compute the edge length from an edge length. This is trivial.
- */
- template<typename Graph, typename DistanceMap, typename IndexMap,
- typename T>
- T compute_edge_length(const Graph&, DistanceMap, IndexMap,
- edge_or_side<true, T> length)
- { return length.value; }
-
- /**
- * Compute the edge length based on the display area side
- length. We do this by dividing the side length by the largest
- shortest distance between any two vertices in the graph.
- */
- template<typename Graph, typename DistanceMap, typename IndexMap,
- typename T>
- T
- compute_edge_length(const Graph& g, DistanceMap distance, IndexMap index,
- edge_or_side<false, T> length)
- {
- T result(0);
-
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
-
- for (vertex_iterator ui = vertices(g).first, end = vertices(g).second;
- ui != end; ++ui) {
- vertex_iterator vi = ui;
- for (++vi; vi != end; ++vi) {
- T dij = distance[get(index, *ui)][get(index, *vi)];
- if (dij > result) result = dij;
- }
- }
- return length.value / result;
- }
-
- /**
- * Implementation of the Kamada-Kawai spring layout algorithm.
- */
- template<typename Graph, typename PositionMap, typename WeightMap,
- typename EdgeOrSideLength, typename Done,
- typename VertexIndexMap, typename DistanceMatrix,
- typename SpringStrengthMatrix, typename PartialDerivativeMap>
- struct kamada_kawai_spring_layout_impl
- {
- typedef typename property_traits<WeightMap>::value_type weight_type;
- typedef std::pair<weight_type, weight_type> deriv_type;
- typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
- typedef typename graph_traits<Graph>::vertex_descriptor
- vertex_descriptor;
-
- kamada_kawai_spring_layout_impl(
- const Graph& g,
- PositionMap position,
- WeightMap weight,
- EdgeOrSideLength edge_or_side_length,
- Done done,
- weight_type spring_constant,
- VertexIndexMap index,
- DistanceMatrix distance,
- SpringStrengthMatrix spring_strength,
- PartialDerivativeMap partial_derivatives)
- : g(g), position(position), weight(weight),
- edge_or_side_length(edge_or_side_length), done(done),
- spring_constant(spring_constant), index(index), distance(distance),
- spring_strength(spring_strength),
- partial_derivatives(partial_derivatives) {}
-
- // Compute contribution of vertex i to the first partial
- // derivatives (dE/dx_m, dE/dy_m) (for vertex m)
- deriv_type
- compute_partial_derivative(vertex_descriptor m, vertex_descriptor i)
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif // BOOST_NO_STDC_NAMESPACE
-
- deriv_type result(0, 0);
- if (i != m) {
- weight_type x_diff = position[m].x - position[i].x;
- weight_type y_diff = position[m].y - position[i].y;
- weight_type dist = sqrt(x_diff * x_diff + y_diff * y_diff);
- result.first = spring_strength[get(index, m)][get(index, i)]
- * (x_diff - distance[get(index, m)][get(index, i)]*x_diff/dist);
- result.second = spring_strength[get(index, m)][get(index, i)]
- * (y_diff - distance[get(index, m)][get(index, i)]*y_diff/dist);
- }
-
- return result;
- }
-
- // Compute partial derivatives dE/dx_m and dE/dy_m
- deriv_type
- compute_partial_derivatives(vertex_descriptor m)
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif // BOOST_NO_STDC_NAMESPACE
-
- deriv_type result(0, 0);
-
- // TBD: looks like an accumulate to me
- std::pair<vertex_iterator, vertex_iterator> verts = vertices(g);
- for (/* no init */; verts.first != verts.second; ++verts.first) {
- vertex_descriptor i = *verts.first;
- deriv_type deriv = compute_partial_derivative(m, i);
- result.first += deriv.first;
- result.second += deriv.second;
- }
-
- return result;
- }
-
- // The actual Kamada-Kawai spring layout algorithm implementation
- bool run()
- {
-#ifndef BOOST_NO_STDC_NAMESPACE
- using std::sqrt;
-#endif // BOOST_NO_STDC_NAMESPACE
-
- // Compute d_{ij} and place it in the distance matrix
- if (!johnson_all_pairs_shortest_paths(g, distance, index, weight,
- weight_type(0)))
- return false;
-
- // Compute L based on side length (if needed), or retrieve L
- weight_type edge_length =
- detail::graph::compute_edge_length(g, distance, index,
- edge_or_side_length);
-
- // Compute l_{ij} and k_{ij}
- const weight_type K = spring_constant;
- vertex_iterator ui, end = vertices(g).second;
- for (ui = vertices(g).first; ui != end; ++ui) {
- vertex_iterator vi = ui;
- for (++vi; vi != end; ++vi) {
- weight_type dij = distance[get(index, *ui)][get(index, *vi)];
- if (dij == (std::numeric_limits<weight_type>::max)())
- return false;
- distance[get(index, *ui)][get(index, *vi)] = edge_length * dij;
- distance[get(index, *vi)][get(index, *ui)] = edge_length * dij;
- spring_strength[get(index, *ui)][get(index, *vi)] = K/(dij*dij);
- spring_strength[get(index, *vi)][get(index, *ui)] = K/(dij*dij);
- }
- }
-
- // Compute Delta_i and find max
- vertex_descriptor p = *vertices(g).first;
- weight_type delta_p(0);
-
- for (ui = vertices(g).first; ui != end; ++ui) {
- deriv_type deriv = compute_partial_derivatives(*ui);
- put(partial_derivatives, *ui, deriv);
-
- weight_type delta =
- sqrt(deriv.first*deriv.first + deriv.second*deriv.second);
-
- if (delta > delta_p) {
- p = *ui;
- delta_p = delta;
- }
- }
-
- while (!done(delta_p, p, g, true)) {
- // The contribution p makes to the partial derivatives of
- // each vertex. Computing this (at O(n) cost) allows us to
- // update the delta_i values in O(n) time instead of O(n^2)
- // time.
- std::vector<deriv_type> p_partials(num_vertices(g));
- for (ui = vertices(g).first; ui != end; ++ui) {
- vertex_descriptor i = *ui;
- p_partials[get(index, i)] = compute_partial_derivative(i, p);
- }
-
- do {
- // Compute the 4 elements of the Jacobian
- weight_type dE_dx_dx = 0, dE_dx_dy = 0, dE_dy_dx = 0, dE_dy_dy = 0;
- for (ui = vertices(g).first; ui != end; ++ui) {
- vertex_descriptor i = *ui;
- if (i != p) {
- weight_type x_diff = position[p].x - position[i].x;
- weight_type y_diff = position[p].y - position[i].y;
- weight_type dist = sqrt(x_diff * x_diff + y_diff * y_diff);
- weight_type dist_cubed = dist * dist * dist;
- weight_type k_mi = spring_strength[get(index,p)][get(index,i)];
- weight_type l_mi = distance[get(index, p)][get(index, i)];
- dE_dx_dx += k_mi * (1 - (l_mi * y_diff * y_diff)/dist_cubed);
- dE_dx_dy += k_mi * l_mi * x_diff * y_diff / dist_cubed;
- dE_dy_dx += k_mi * l_mi * x_diff * y_diff / dist_cubed;
- dE_dy_dy += k_mi * (1 - (l_mi * x_diff * x_diff)/dist_cubed);
- }
- }
-
- // Solve for delta_x and delta_y
- weight_type dE_dx = get(partial_derivatives, p).first;
- weight_type dE_dy = get(partial_derivatives, p).second;
-
- weight_type delta_x =
- (dE_dx_dy * dE_dy - dE_dy_dy * dE_dx)
- / (dE_dx_dx * dE_dy_dy - dE_dx_dy * dE_dy_dx);
-
- weight_type delta_y =
- (dE_dx_dx * dE_dy - dE_dy_dx * dE_dx)
- / (dE_dy_dx * dE_dx_dy - dE_dx_dx * dE_dy_dy);
-
-
- // Move p by (delta_x, delta_y)
- position[p].x += delta_x;
- position[p].y += delta_y;
-
- // Recompute partial derivatives and delta_p
- deriv_type deriv = compute_partial_derivatives(p);
- put(partial_derivatives, p, deriv);
-
- delta_p =
- sqrt(deriv.first*deriv.first + deriv.second*deriv.second);
- } while (!done(delta_p, p, g, false));
-
- // Select new p by updating each partial derivative and delta
- vertex_descriptor old_p = p;
- for (ui = vertices(g).first; ui != end; ++ui) {
- deriv_type old_deriv_p = p_partials[get(index, *ui)];
- deriv_type old_p_partial =
- compute_partial_derivative(*ui, old_p);
- deriv_type deriv = get(partial_derivatives, *ui);
-
- deriv.first += old_p_partial.first - old_deriv_p.first;
- deriv.second += old_p_partial.second - old_deriv_p.second;
-
- put(partial_derivatives, *ui, deriv);
- weight_type delta =
- sqrt(deriv.first*deriv.first + deriv.second*deriv.second);
-
- if (delta > delta_p) {
- p = *ui;
- delta_p = delta;
- }
- }
- }
-
- return true;
- }
-
- const Graph& g;
- PositionMap position;
- WeightMap weight;
- EdgeOrSideLength edge_or_side_length;
- Done done;
- weight_type spring_constant;
- VertexIndexMap index;
- DistanceMatrix distance;
- SpringStrengthMatrix spring_strength;
- PartialDerivativeMap partial_derivatives;
- };
- } } // end namespace detail::graph
-
- /// States that the given quantity is an edge length.
- template<typename T>
- inline detail::graph::edge_or_side<true, T>
- edge_length(T x)
- { return detail::graph::edge_or_side<true, T>(x); }
-
- /// States that the given quantity is a display area side length.
- template<typename T>
- inline detail::graph::edge_or_side<false, T>
- side_length(T x)
- { return detail::graph::edge_or_side<false, T>(x); }
-
- /**
- * \brief Determines when to terminate layout of a particular graph based
- * on a given relative tolerance.
- */
- template<typename T = double>
- struct layout_tolerance
- {
- layout_tolerance(const T& tolerance = T(0.001))
- : tolerance(tolerance), last_energy((std::numeric_limits<T>::max)()),
- last_local_energy((std::numeric_limits<T>::max)()) { }
-
- template<typename Graph>
- bool
- operator()(T delta_p,
- typename boost::graph_traits<Graph>::vertex_descriptor p,
- const Graph& g,
- bool global)
- {
- if (global) {
- if (last_energy == (std::numeric_limits<T>::max)()) {
- last_energy = delta_p;
- return false;
- }
-
- T diff = last_energy - delta_p;
- if (diff < T(0)) diff = -diff;
- bool done = (delta_p == T(0) || diff / last_energy < tolerance);
- last_energy = delta_p;
- return done;
- } else {
- if (last_local_energy == (std::numeric_limits<T>::max)()) {
- last_local_energy = delta_p;
- return delta_p == T(0);
- }
-
- T diff = last_local_energy - delta_p;
- bool done = (delta_p == T(0) || (diff / last_local_energy) < tolerance);
- last_local_energy = delta_p;
- return done;
- }
- }
-
- private:
- T tolerance;
- T last_energy;
- T last_local_energy;
- };
-
- /** \brief Kamada-Kawai spring layout for undirected graphs.
- *
- * This algorithm performs graph layout (in two dimensions) for
- * connected, undirected graphs. It operates by relating the layout
- * of graphs to a dynamic spring system and minimizing the energy
- * within that system. The strength of a spring between two vertices
- * is inversely proportional to the square of the shortest distance
- * (in graph terms) between those two vertices. Essentially,
- * vertices that are closer in the graph-theoretic sense (i.e., by
- * following edges) will have stronger springs and will therefore be
- * placed closer together.
- *
- * Prior to invoking this algorithm, it is recommended that the
- * vertices be placed along the vertices of a regular n-sided
- * polygon.
- *
- * \param g (IN) must be a model of Vertex List Graph, Edge List
- * Graph, and Incidence Graph and must be undirected.
- *
- * \param position (OUT) must be a model of Lvalue Property Map,
- * where the value type is a class containing fields @c x and @c y
- * that will be set to the @c x and @c y coordinates of each vertex.
- *
- * \param weight (IN) must be a model of Readable Property Map,
- * which provides the weight of each edge in the graph @p g.
- *
- * \param edge_or_side_length (IN) provides either the unit length
- * @c e of an edge in the layout or the length of a side @c s of the
- * display area, and must be either @c boost::edge_length(e) or @c
- * boost::side_length(s), respectively.
- *
- * \param done (IN) is a 4-argument function object that is passed
- * the current value of delta_p (i.e., the energy of vertex @p p),
- * the vertex @p p, the graph @p g, and a boolean flag indicating
- * whether @p delta_p is the maximum energy in the system (when @c
- * true) or the energy of the vertex being moved. Defaults to @c
- * layout_tolerance instantiated over the value type of the weight
- * map.
- *
- * \param spring_constant (IN) is the constant multiplied by each
- * spring's strength. Larger values create systems with more energy
- * that can take longer to stabilize; smaller values create systems
- * with less energy that stabilize quickly but do not necessarily
- * result in pleasing layouts. The default value is 1.
- *
- * \param index (IN) is a mapping from vertices to index values
- * between 0 and @c num_vertices(g). The default is @c
- * get(vertex_index,g).
- *
- * \param distance (UTIL/OUT) will be used to store the distance
- * from every vertex to every other vertex, which is computed in the
- * first stages of the algorithm. This value's type must be a model
- * of BasicMatrix with value type equal to the value type of the
- * weight map. The default is a a vector of vectors.
- *
- * \param spring_strength (UTIL/OUT) will be used to store the
- * strength of the spring between every pair of vertices. This
- * value's type must be a model of BasicMatrix with value type equal
- * to the value type of the weight map. The default is a a vector of
- * vectors.
- *
- * \param partial_derivatives (UTIL) will be used to store the
- * partial derivates of each vertex with respect to the @c x and @c
- * y coordinates. This must be a Read/Write Property Map whose value
- * type is a pair with both types equivalent to the value type of
- * the weight map. The default is an iterator property map.
- *
- * \returns @c true if layout was successful or @c false if a
- * negative weight cycle was detected.
- */
- template<typename Graph, typename PositionMap, typename WeightMap,
- typename T, bool EdgeOrSideLength, typename Done,
- typename VertexIndexMap, typename DistanceMatrix,
- typename SpringStrengthMatrix, typename PartialDerivativeMap>
- bool
- kamada_kawai_spring_layout(
- const Graph& g,
- PositionMap position,
- WeightMap weight,
- detail::graph::edge_or_side<EdgeOrSideLength, T> edge_or_side_length,
- Done done,
- typename property_traits<WeightMap>::value_type spring_constant,
- VertexIndexMap index,
- DistanceMatrix distance,
- SpringStrengthMatrix spring_strength,
- PartialDerivativeMap partial_derivatives)
- {
- BOOST_STATIC_ASSERT((is_convertible<
- typename graph_traits<Graph>::directed_category*,
- undirected_tag*
- >::value));
-
- detail::graph::kamada_kawai_spring_layout_impl<
- Graph, PositionMap, WeightMap,
- detail::graph::edge_or_side<EdgeOrSideLength, T>, Done, VertexIndexMap,
- DistanceMatrix, SpringStrengthMatrix, PartialDerivativeMap>
- alg(g, position, weight, edge_or_side_length, done, spring_constant,
- index, distance, spring_strength, partial_derivatives);
- return alg.run();
- }
-
- /**
- * \overload
- */
- template<typename Graph, typename PositionMap, typename WeightMap,
- typename T, bool EdgeOrSideLength, typename Done,
- typename VertexIndexMap>
- bool
- kamada_kawai_spring_layout(
- const Graph& g,
- PositionMap position,
- WeightMap weight,
- detail::graph::edge_or_side<EdgeOrSideLength, T> edge_or_side_length,
- Done done,
- typename property_traits<WeightMap>::value_type spring_constant,
- VertexIndexMap index)
- {
- typedef typename property_traits<WeightMap>::value_type weight_type;
-
- typename graph_traits<Graph>::vertices_size_type n = num_vertices(g);
- typedef std::vector<weight_type> weight_vec;
-
- std::vector<weight_vec> distance(n, weight_vec(n));
- std::vector<weight_vec> spring_strength(n, weight_vec(n));
- std::vector<std::pair<weight_type, weight_type> > partial_derivatives(n);
-
- return
- kamada_kawai_spring_layout(
- g, position, weight, edge_or_side_length, done, spring_constant, index,
- distance.begin(),
- spring_strength.begin(),
- make_iterator_property_map(partial_derivatives.begin(), index,
- std::pair<weight_type, weight_type>()));
- }
-
- /**
- * \overload
- */
- template<typename Graph, typename PositionMap, typename WeightMap,
- typename T, bool EdgeOrSideLength, typename Done>
- bool
- kamada_kawai_spring_layout(
- const Graph& g,
- PositionMap position,
- WeightMap weight,
- detail::graph::edge_or_side<EdgeOrSideLength, T> edge_or_side_length,
- Done done,
- typename property_traits<WeightMap>::value_type spring_constant)
- {
- return kamada_kawai_spring_layout(g, position, weight, edge_or_side_length,
- done, spring_constant,
- get(vertex_index, g));
- }
-
- /**
- * \overload
- */
- template<typename Graph, typename PositionMap, typename WeightMap,
- typename T, bool EdgeOrSideLength, typename Done>
- bool
- kamada_kawai_spring_layout(
- const Graph& g,
- PositionMap position,
- WeightMap weight,
- detail::graph::edge_or_side<EdgeOrSideLength, T> edge_or_side_length,
- Done done)
- {
- typedef typename property_traits<WeightMap>::value_type weight_type;
- return kamada_kawai_spring_layout(g, position, weight, edge_or_side_length,
- done, weight_type(1));
- }
-
- /**
- * \overload
- */
- template<typename Graph, typename PositionMap, typename WeightMap,
- typename T, bool EdgeOrSideLength>
- bool
- kamada_kawai_spring_layout(
- const Graph& g,
- PositionMap position,
- WeightMap weight,
- detail::graph::edge_or_side<EdgeOrSideLength, T> edge_or_side_length)
- {
- typedef typename property_traits<WeightMap>::value_type weight_type;
- return kamada_kawai_spring_layout(g, position, weight, edge_or_side_length,
- layout_tolerance<weight_type>(),
- weight_type(1.0),
- get(vertex_index, g));
- }
-} // end namespace boost
-
-#endif // BOOST_GRAPH_KAMADA_KAWAI_SPRING_LAYOUT_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-// Doug Gregor, D. Kevin McGrath
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-#ifndef BOOST_GRAPH_KING_HPP
-#define BOOST_GRAPH_KING_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/detail/sparse_ordering.hpp>
-
-/*
- King Algorithm for matrix reordering
-*/
-
-namespace boost {
- namespace detail {
- template<typename OutputIterator, typename Buffer, typename Compare,
- typename PseudoDegreeMap, typename VecMap, typename VertexIndexMap>
- class bfs_king_visitor:public default_bfs_visitor
- {
- public:
- bfs_king_visitor(OutputIterator *iter, Buffer *b, Compare compare,
- PseudoDegreeMap deg, std::vector<int> loc, VecMap color,
- VertexIndexMap vertices):
- permutation(iter), Qptr(b), degree(deg), comp(compare),
- Qlocation(loc), colors(color), vertex_map(vertices) { }
-
- template <typename Vertex, typename Graph>
- void finish_vertex(Vertex, Graph& g) {
- typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- Vertex v, w;
-
- typedef typename std::deque<Vertex>::iterator iterator;
- typedef typename std::deque<Vertex>::reverse_iterator reverse_iterator;
-
- reverse_iterator rend = Qptr->rend()-index_begin;
- reverse_iterator rbegin = Qptr->rbegin();
-
-
- //heap the vertices already there
- std::make_heap(rbegin, rend, boost::bind<bool>(comp, _2, _1));
-
- unsigned int i = 0;
-
- for(i = index_begin; i != Qptr->size(); ++i){
- colors[get(vertex_map, (*Qptr)[i])] = 1;
- Qlocation[get(vertex_map, (*Qptr)[i])] = i;
- }
-
- i = 0;
-
- for( ; rbegin != rend; rend--){
- percolate_down<Vertex>(i);
- w = (*Qptr)[index_begin+i];
- for (tie(ei, ei_end) = out_edges(w, g); ei != ei_end; ++ei) {
- v = target(*ei, g);
- put(degree, v, get(degree, v) - 1);
-
- if (colors[get(vertex_map, v)] == 1) {
- percolate_up<Vertex>(get(vertex_map, v), i);
- }
- }
-
- colors[get(vertex_map, w)] = 0;
- i++;
- }
- }
-
- template <typename Vertex, typename Graph>
- void examine_vertex(Vertex u, const Graph&) {
-
- *(*permutation)++ = u;
- index_begin = Qptr->size();
-
- }
- protected:
-
-
- //this function replaces pop_heap, and tracks state information
- template <typename Vertex>
- void percolate_down(int offset){
- typedef typename std::deque<Vertex>::reverse_iterator reverse_iterator;
-
- int heap_last = index_begin + offset;
- int heap_first = Qptr->size() - 1;
-
- //pop_heap functionality:
- //swap first, last
- std::swap((*Qptr)[heap_last], (*Qptr)[heap_first]);
-
- //swap in the location queue
- std::swap(Qlocation[heap_first], Qlocation[heap_last]);
-
- //set drifter, children
- int drifter = heap_first;
- int drifter_heap = Qptr->size() - drifter;
-
- int right_child_heap = drifter_heap * 2 + 1;
- int right_child = Qptr->size() - right_child_heap;
-
- int left_child_heap = drifter_heap * 2;
- int left_child = Qptr->size() - left_child_heap;
-
- //check that we are staying in the heap
- bool valid = (right_child < heap_last) ? false : true;
-
- //pick smallest child of drifter, and keep in mind there might only be left child
- int smallest_child = (valid && get(degree, (*Qptr)[left_child]) > get(degree,(*Qptr)[right_child])) ?
- right_child : left_child;
-
- while(valid && smallest_child < heap_last && comp((*Qptr)[drifter], (*Qptr)[smallest_child])){
-
- //if smallest child smaller than drifter, swap them
- std::swap((*Qptr)[smallest_child], (*Qptr)[drifter]);
- std::swap(Qlocation[drifter], Qlocation[smallest_child]);
-
- //update the values, run again, as necessary
- drifter = smallest_child;
- drifter_heap = Qptr->size() - drifter;
-
- right_child_heap = drifter_heap * 2 + 1;
- right_child = Qptr->size() - right_child_heap;
-
- left_child_heap = drifter_heap * 2;
- left_child = Qptr->size() - left_child_heap;
-
- valid = (right_child < heap_last) ? false : true;
-
- smallest_child = (valid && get(degree, (*Qptr)[left_child]) > get(degree,(*Qptr)[right_child])) ?
- right_child : left_child;
- }
-
- }
-
-
-
- // this is like percolate down, but we always compare against the
- // parent, as there is only a single choice
- template <typename Vertex>
- void percolate_up(int vertex, int offset){
-
- int child_location = Qlocation[vertex];
- int heap_child_location = Qptr->size() - child_location;
- int heap_parent_location = (int)(heap_child_location/2);
- int parent_location = Qptr->size() - heap_parent_location;
-
- bool valid = (heap_parent_location != 0 && child_location > index_begin + offset &&
- parent_location < static_cast<signed int>(Qptr->size()));
-
- while(valid && comp((*Qptr)[child_location], (*Qptr)[parent_location])){
-
- //swap in the heap
- std::swap((*Qptr)[child_location], (*Qptr)[parent_location]);
-
- //swap in the location queue
- std::swap(Qlocation[child_location], Qlocation[parent_location]);
-
- child_location = parent_location;
- heap_child_location = heap_parent_location;
- heap_parent_location = (int)(heap_child_location/2);
- parent_location = Qptr->size() - heap_parent_location;
- valid = (heap_parent_location != 0 && child_location > index_begin + offset);
- }
- }
-
- OutputIterator *permutation;
- int index_begin;
- Buffer *Qptr;
- PseudoDegreeMap degree;
- Compare comp;
- std::vector<int> Qlocation;
- VecMap colors;
- VertexIndexMap vertex_map;
- };
-
-
- } // namespace detail
-
-
- template<class Graph, class OutputIterator, class ColorMap, class DegreeMap,
- typename VertexIndexMap>
- OutputIterator
- king_ordering(const Graph& g,
- std::deque< typename graph_traits<Graph>::vertex_descriptor >
- vertex_queue,
- OutputIterator permutation,
- ColorMap color, DegreeMap degree,
- VertexIndexMap index_map)
- {
- typedef typename property_traits<DegreeMap>::value_type DS;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef iterator_property_map<typename std::vector<DS>::iterator, VertexIndexMap, DS, DS&> PseudoDegreeMap;
- typedef indirect_cmp<PseudoDegreeMap, std::less<DS> > Compare;
- typedef typename boost::sparse::sparse_ordering_queue<Vertex> queue;
- typedef typename detail::bfs_king_visitor<OutputIterator, queue, Compare,
- PseudoDegreeMap, std::vector<int>, VertexIndexMap > Visitor;
- typedef typename graph_traits<Graph>::vertices_size_type
- vertices_size_type;
- std::vector<DS> pseudo_degree_vec(num_vertices(g));
- PseudoDegreeMap pseudo_degree(pseudo_degree_vec.begin(), index_map);
-
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- queue Q;
- // Copy degree to pseudo_degree
- // initialize the color map
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui){
- put(pseudo_degree, *ui, get(degree, *ui));
- put(color, *ui, Color::white());
- }
-
- Compare comp(pseudo_degree);
- std::vector<int> colors(num_vertices(g));
-
- for(vertices_size_type i = 0; i < num_vertices(g); i++)
- colors[i] = 0;
-
- std::vector<int> loc(num_vertices(g));
-
- //create the visitor
- Visitor vis(&permutation, &Q, comp, pseudo_degree, loc, colors, index_map);
-
- while( !vertex_queue.empty() ) {
- Vertex s = vertex_queue.front();
- vertex_queue.pop_front();
-
- //call BFS with visitor
- breadth_first_visit(g, s, Q, vis, color);
- }
-
- return permutation;
- }
-
-
- // This is the case where only a single starting vertex is supplied.
- template <class Graph, class OutputIterator,
- class ColorMap, class DegreeMap, typename VertexIndexMap>
- OutputIterator
- king_ordering(const Graph& g,
- typename graph_traits<Graph>::vertex_descriptor s,
- OutputIterator permutation,
- ColorMap color, DegreeMap degree, VertexIndexMap index_map)
- {
-
- std::deque< typename graph_traits<Graph>::vertex_descriptor > vertex_queue;
- vertex_queue.push_front( s );
- return king_ordering(g, vertex_queue, permutation, color, degree,
- index_map);
- }
-
-
- template < class Graph, class OutputIterator,
- class ColorMap, class DegreeMap, class VertexIndexMap>
- OutputIterator
- king_ordering(const Graph& G, OutputIterator permutation,
- ColorMap color, DegreeMap degree, VertexIndexMap index_map)
- {
- if (vertices(G).first == vertices(G).second)
- return permutation;
-
- typedef typename boost::graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename boost::graph_traits<Graph>::vertex_iterator VerIter;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- std::deque<Vertex> vertex_queue;
-
- // Mark everything white
- BGL_FORALL_VERTICES_T(v, G, Graph) put(color, v, Color::white());
-
- // Find one vertex from each connected component
- BGL_FORALL_VERTICES_T(v, G, Graph) {
- if (get(color, v) == Color::white()) {
- depth_first_visit(G, v, dfs_visitor<>(), color);
- vertex_queue.push_back(v);
- }
- }
-
- // Find starting nodes for all vertices
- // TBD: How to do this with a directed graph?
- for (typename std::deque<Vertex>::iterator i = vertex_queue.begin();
- i != vertex_queue.end(); ++i)
- *i = find_starting_node(G, *i, color, degree);
-
- return king_ordering(G, vertex_queue, permutation, color, degree,
- index_map);
- }
-
- template<typename Graph, typename OutputIterator, typename VertexIndexMap>
- OutputIterator
- king_ordering(const Graph& G, OutputIterator permutation,
- VertexIndexMap index_map)
- {
- if (vertices(G).first == vertices(G).second)
- return permutation;
-
- typedef out_degree_property_map<Graph> DegreeMap;
- std::vector<default_color_type> colors(num_vertices(G));
- return king_ordering(G, permutation,
- make_iterator_property_map(&colors[0], index_map,
- colors[0]),
- make_out_degree_map(G), index_map);
- }
-
- template<typename Graph, typename OutputIterator>
- inline OutputIterator
- king_ordering(const Graph& G, OutputIterator permutation)
- { return king_ordering(G, permutation, get(vertex_index, G)); }
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_KING_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_MST_KRUSKAL_HPP
-#define BOOST_GRAPH_MST_KRUSKAL_HPP
-
-/*
- *Minimum Spanning Tree
- * Kruskal Algorithm
- *
- *Requirement:
- * undirected graph
- */
-
-#include <vector>
-#include <queue>
-#include <functional>
-
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/named_function_params.hpp>
-#include <boost/pending/disjoint_sets.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-
-
-namespace boost {
-
- // Kruskal's algorithm for Minimum Spanning Tree
- //
- // This is a greedy algorithm to calculate the Minimum Spanning Tree
- // for an undirected graph with weighted edges. The output will be a
- // set of edges.
- //
-
- namespace detail {
-
- template <class Graph, class OutputIterator,
- class Rank, class Parent, class Weight>
- void
- kruskal_mst_impl(const Graph& G,
- OutputIterator spanning_tree_edges,
- Rank rank, Parent parent, Weight weight)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename graph_traits<Graph>::edge_descriptor Edge;
- function_requires<VertexListGraphConcept<Graph> >();
- function_requires<EdgeListGraphConcept<Graph> >();
- function_requires<OutputIteratorConcept<OutputIterator, Edge> >();
- function_requires<ReadWritePropertyMapConcept<Rank, Vertex> >();
- function_requires<ReadWritePropertyMapConcept<Parent, Vertex> >();
- function_requires<ReadablePropertyMapConcept<Weight, Edge> >();
- typedef typename property_traits<Weight>::value_type W_value;
- typedef typename property_traits<Rank>::value_type R_value;
- typedef typename property_traits<Parent>::value_type P_value;
- function_requires<ComparableConcept<W_value> >();
- function_requires<ConvertibleConcept<P_value, Vertex> >();
- function_requires<IntegerConcept<R_value> >();
-
- disjoint_sets<Rank, Parent> dset(rank, parent);
-
- typename graph_traits<Graph>::vertex_iterator ui, uiend;
- for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui)
- dset.make_set(*ui);
-
- typedef indirect_cmp<Weight, std::greater<W_value> > weight_greater;
- weight_greater wl(weight);
- std::priority_queue<Edge, std::vector<Edge>, weight_greater> Q(wl);
- /*push all edge into Q*/
- typename graph_traits<Graph>::edge_iterator ei, eiend;
- for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei)
- Q.push(*ei);
-
- while (! Q.empty()) {
- Edge e = Q.top();
- Q.pop();
- Vertex u = dset.find_set(source(e, G));
- Vertex v = dset.find_set(target(e, G));
- if ( u != v ) {
- *spanning_tree_edges++ = e;
- dset.link(u, v);
- }
- }
- }
-
- } // namespace detail
-
- // Named Parameters Variants
-
- template <class Graph, class OutputIterator>
- inline void
- kruskal_minimum_spanning_tree(const Graph& g,
- OutputIterator spanning_tree_edges)
- {
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename property_map<Graph, vertex_index_t>::type index_map_t;
- typename graph_traits<Graph>::vertices_size_type
- n = num_vertices(g);
- std::vector<size_type> rank_map(n);
- std::vector<vertex_t> pred_map(n);
-
- detail::kruskal_mst_impl
- (g, spanning_tree_edges,
- make_iterator_property_map(rank_map.begin(), get(vertex_index, g), rank_map[0]),
- make_iterator_property_map(pred_map.begin(), get(vertex_index, g), pred_map[0]),
- get(edge_weight, g));
- }
-
- template <class Graph, class OutputIterator, class P, class T, class R>
- inline void
- kruskal_minimum_spanning_tree(const Graph& g,
- OutputIterator spanning_tree_edges,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typename graph_traits<Graph>::vertices_size_type n;
- n = is_default_param(get_param(params, vertex_rank))
- ? num_vertices(g) : 1;
- std::vector<size_type> rank_map(n);
- n = is_default_param(get_param(params, vertex_predecessor))
- ? num_vertices(g) : 1;
- std::vector<vertex_t> pred_map(n);
-
- detail::kruskal_mst_impl
- (g, spanning_tree_edges,
- choose_param
- (get_param(params, vertex_rank),
- make_iterator_property_map
- (rank_map.begin(),
- choose_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])),
- choose_param
- (get_param(params, vertex_predecessor),
- make_iterator_property_map
- (pred_map.begin(),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
- pred_map[0])),
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight));
- }
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_MST_KRUSKAL_HPP
-
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Copyright 2004 The Trustees of Indiana University.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek, Douglas Gregor
-//
-// Distributed under the 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_GRAPH_LEDA_HPP
-#define BOOST_GRAPH_LEDA_HPP
-
-#include <boost/config.hpp>
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-
-#include <LEDA/graph.h>
-#include <LEDA/node_array.h>
-#include <LEDA/node_map.h>
-
-// The functions and classes in this file allows the user to
-// treat a LEDA GRAPH object as a boost graph "as is". No
-// wrapper is needed for the GRAPH object.
-
-// Remember to define LEDA_PREFIX so that LEDA types such as
-// leda_edge show up as "leda_edge" and not just "edge".
-
-// Warning: this implementation relies on partial specialization
-// for the graph_traits class (so it won't compile with Visual C++)
-
-// Warning: this implementation is in alpha and has not been tested
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace boost {
-
- struct leda_graph_traversal_category :
- public virtual bidirectional_graph_tag,
- public virtual adjacency_graph_tag,
- public virtual vertex_list_graph_tag { };
-
- template <class vtype, class etype>
- struct graph_traits< leda::GRAPH<vtype,etype> > {
- typedef leda_node vertex_descriptor;
- typedef leda_edge edge_descriptor;
-
- class adjacency_iterator
- : public iterator_facade<adjacency_iterator,
- leda_node,
- bidirectional_traversal_tag,
- leda_node,
- const leda_node*>
- {
- public:
- explicit adjacency_iterator(leda_edge edge = 0) : base(edge) {}
-
- private:
- leda_node dereference() const { return leda::target(base); }
-
- bool equal(const adjacency_iterator& other) const
- { return base == other.base; }
-
- void increment() { base = Succ_Adj_Edge(base, 0); }
- void decrement() { base = Pred_Adj_Edge(base, 0); }
-
- leda_edge base;
-
- friend class iterator_core_access;
- };
-
- class out_edge_iterator
- : public iterator_facade<out_edge_iterator,
- leda_edge,
- bidirectional_traversal_tag,
- const leda_edge&,
- const leda_edge*>
- {
- public:
- explicit out_edge_iterator(leda_edge edge = 0) : base(edge) {}
-
- private:
- const leda_edge& dereference() const { return base; }
-
- bool equal(const out_edge_iterator& other) const
- { return base == other.base; }
-
- void increment() { base = Succ_Adj_Edge(base, 0); }
- void decrement() { base = Pred_Adj_Edge(base, 0); }
-
- leda_edge base;
-
- friend class iterator_core_access;
- };
-
- class in_edge_iterator
- : public iterator_facade<in_edge_iterator,
- leda_edge,
- bidirectional_traversal_tag,
- const leda_edge&,
- const leda_edge*>
- {
- public:
- explicit in_edge_iterator(leda_edge edge = 0) : base(edge) {}
-
- private:
- const leda_edge& dereference() const { return base; }
-
- bool equal(const in_edge_iterator& other) const
- { return base == other.base; }
-
- void increment() { base = Succ_Adj_Edge(base, 1); }
- void decrement() { base = Pred_Adj_Edge(base, 1); }
-
- leda_edge base;
-
- friend class iterator_core_access;
- };
-
- class vertex_iterator
- : public iterator_facade<vertex_iterator,
- leda_node,
- bidirectional_traversal_tag,
- const leda_node&,
- const leda_node*>
- {
- public:
- vertex_iterator(leda_node node = 0,
- const leda::GRAPH<vtype, etype>* g = 0)
- : base(node), g(g) {}
-
- private:
- const leda_node& dereference() const { return base; }
-
- bool equal(const vertex_iterator& other) const
- { return base == other.base; }
-
- void increment() { base = g->succ_node(base); }
- void decrement() { base = g->pred_node(base); }
-
- leda_node base;
- const leda::GRAPH<vtype, etype>* g;
-
- friend class iterator_core_access;
- };
-
- typedef directed_tag directed_category;
- typedef allow_parallel_edge_tag edge_parallel_category; // not sure here
- typedef leda_graph_traversal_category traversal_category;
- typedef int vertices_size_type;
- typedef int edges_size_type;
- typedef int degree_size_type;
- };
-
- template <class vtype, class etype>
- struct vertex_property< leda::GRAPH<vtype,etype> > {
- typedef vtype type;
- };
-
- template <class vtype, class etype>
- struct edge_property< leda::GRAPH<vtype,etype> > {
- typedef etype type;
- };
-
-} // namespace boost
-#endif
-
-namespace boost {
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor
- source(typename graph_traits< leda::GRAPH<vtype,etype> >::edge_descriptor e,
- const leda::GRAPH<vtype,etype>& g)
- {
- return source(e);
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor
- target(typename graph_traits< leda::GRAPH<vtype,etype> >::edge_descriptor e,
- const leda::GRAPH<vtype,etype>& g)
- {
- return target(e);
- }
-
- template <class vtype, class etype>
- inline std::pair<
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_iterator,
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_iterator >
- vertices(const leda::GRAPH<vtype,etype>& g)
- {
- typedef typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_iterator
- Iter;
- return std::make_pair( Iter(g.first_node(),&g), Iter(0,&g) );
- }
-
- // no edges(g) function
-
- template <class vtype, class etype>
- inline std::pair<
- typename graph_traits< leda::GRAPH<vtype,etype> >::out_edge_iterator,
- typename graph_traits< leda::GRAPH<vtype,etype> >::out_edge_iterator >
- out_edges(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- const leda::GRAPH<vtype,etype>& g)
- {
- typedef typename graph_traits< leda::GRAPH<vtype,etype> >
- ::out_edge_iterator Iter;
- return std::make_pair( Iter(First_Adj_Edge(u,0)), Iter(0) );
- }
-
- template <class vtype, class etype>
- inline std::pair<
- typename graph_traits< leda::GRAPH<vtype,etype> >::in_edge_iterator,
- typename graph_traits< leda::GRAPH<vtype,etype> >::in_edge_iterator >
- in_edges(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- const leda::GRAPH<vtype,etype>& g)
- {
- typedef typename graph_traits< leda::GRAPH<vtype,etype> >
- ::in_edge_iterator Iter;
- return std::make_pair( Iter(First_Adj_Edge(u,1)), Iter(0) );
- }
-
- template <class vtype, class etype>
- inline std::pair<
- typename graph_traits< leda::GRAPH<vtype,etype> >::adjacency_iterator,
- typename graph_traits< leda::GRAPH<vtype,etype> >::adjacency_iterator >
- adjacent_vertices(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- const leda::GRAPH<vtype,etype>& g)
- {
- typedef typename graph_traits< leda::GRAPH<vtype,etype> >
- ::adjacency_iterator Iter;
- return std::make_pair( Iter(First_Adj_Edge(u,0)), Iter(0) );
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertices_size_type
- num_vertices(const leda::GRAPH<vtype,etype>& g)
- {
- return g.number_of_nodes();
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::edges_size_type
- num_edges(const leda::GRAPH<vtype,etype>& g)
- {
- return g.number_of_edges();
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::degree_size_type
- out_degree(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- const leda::GRAPH<vtype,etype>&)
- {
- return outdeg(u);
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::degree_size_type
- in_degree(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- const leda::GRAPH<vtype,etype>&)
- {
- return indeg(u);
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::degree_size_type
- degree(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- const leda::GRAPH<vtype,etype>&)
- {
- return outdeg(u) + indeg(u);
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor
- add_vertex(leda::GRAPH<vtype,etype>& g)
- {
- return g.new_node();
- }
-
- template <class vtype, class etype>
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor
- add_vertex(const vtype& vp, leda::GRAPH<vtype,etype>& g)
- {
- return g.new_node(vp);
- }
-
- // Hmm, LEDA doesn't have the equivalent of clear_vertex() -JGS
- // need to write an implementation
- template <class vtype, class etype>
- void clear_vertex(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- leda::GRAPH<vtype,etype>& g)
- {
- g.del_node(u);
- }
-
- template <class vtype, class etype>
- void remove_vertex(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- leda::GRAPH<vtype,etype>& g)
- {
- g.del_node(u);
- }
-
- template <class vtype, class etype>
- std::pair<
- typename graph_traits< leda::GRAPH<vtype,etype> >::edge_descriptor,
- bool>
- add_edge(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor v,
- leda::GRAPH<vtype,etype>& g)
- {
- return std::make_pair(g.new_edge(u, v), true);
- }
-
- template <class vtype, class etype>
- std::pair<
- typename graph_traits< leda::GRAPH<vtype,etype> >::edge_descriptor,
- bool>
- add_edge(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor v,
- const etype& et,
- leda::GRAPH<vtype,etype>& g)
- {
- return std::make_pair(g.new_edge(u, v, et), true);
- }
-
- template <class vtype, class etype>
- void
- remove_edge(
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor u,
- typename graph_traits< leda::GRAPH<vtype,etype> >::vertex_descriptor v,
- leda::GRAPH<vtype,etype>& g)
- {
- typename graph_traits< leda::GRAPH<vtype,etype> >::out_edge_iterator
- i,iend;
- for (boost::tie(i,iend) = out_edges(u,g); i != iend; ++i)
- if (target(*i,g) == v)
- g.del_edge(*i);
- }
-
- template <class vtype, class etype>
- void
- remove_edge(
- typename graph_traits< leda::GRAPH<vtype,etype> >::edge_descriptor e,
- leda::GRAPH<vtype,etype>& g)
- {
- g.del_edge(e);
- }
-
- //===========================================================================
- // property maps
-
- class leda_graph_id_map
- : public put_get_helper<int, leda_graph_id_map>
- {
- public:
- typedef readable_property_map_tag category;
- typedef int value_type;
- typedef int reference;
- typedef leda_node key_type;
- leda_graph_id_map() { }
- template <class T>
- long operator[](T x) const { return x->id(); }
- };
- template <class vtype, class etype>
- inline leda_graph_id_map
- get(vertex_index_t, const leda::GRAPH<vtype, etype>& g) {
- return leda_graph_id_map();
- }
- template <class vtype, class etype>
- inline leda_graph_id_map
- get(edge_index_t, const leda::GRAPH<vtype, etype>& g) {
- return leda_graph_id_map();
- }
-
- template <class Tag>
- struct leda_property_map { };
-
- template <>
- struct leda_property_map<vertex_index_t> {
- template <class vtype, class etype>
- struct bind_ {
- typedef leda_graph_id_map type;
- typedef leda_graph_id_map const_type;
- };
- };
- template <>
- struct leda_property_map<edge_index_t> {
- template <class vtype, class etype>
- struct bind_ {
- typedef leda_graph_id_map type;
- typedef leda_graph_id_map const_type;
- };
- };
-
-
- template <class Data, class DataRef, class GraphPtr>
- class leda_graph_data_map
- : public put_get_helper<DataRef,
- leda_graph_data_map<Data,DataRef,GraphPtr> >
- {
- public:
- typedef Data value_type;
- typedef DataRef reference;
- typedef void key_type;
- typedef lvalue_property_map_tag category;
- leda_graph_data_map(GraphPtr g) : m_g(g) { }
- template <class NodeOrEdge>
- DataRef operator[](NodeOrEdge x) const { return (*m_g)[x]; }
- protected:
- GraphPtr m_g;
- };
-
- template <>
- struct leda_property_map<vertex_all_t> {
- template <class vtype, class etype>
- struct bind_ {
- typedef leda_graph_data_map<vtype, vtype&, leda::GRAPH<vtype, etype>*> type;
- typedef leda_graph_data_map<vtype, const vtype&,
- const leda::GRAPH<vtype, etype>*> const_type;
- };
- };
- template <class vtype, class etype >
- inline typename property_map< leda::GRAPH<vtype, etype>, vertex_all_t>::type
- get(vertex_all_t, leda::GRAPH<vtype, etype>& g) {
- typedef typename property_map< leda::GRAPH<vtype, etype>, vertex_all_t>::type
- pmap_type;
- return pmap_type(&g);
- }
- template <class vtype, class etype >
- inline typename property_map< leda::GRAPH<vtype, etype>, vertex_all_t>::const_type
- get(vertex_all_t, const leda::GRAPH<vtype, etype>& g) {
- typedef typename property_map< leda::GRAPH<vtype, etype>,
- vertex_all_t>::const_type pmap_type;
- return pmap_type(&g);
- }
-
- template <>
- struct leda_property_map<edge_all_t> {
- template <class vtype, class etype>
- struct bind_ {
- typedef leda_graph_data_map<etype, etype&, leda::GRAPH<vtype, etype>*> type;
- typedef leda_graph_data_map<etype, const etype&,
- const leda::GRAPH<vtype, etype>*> const_type;
- };
- };
- template <class vtype, class etype >
- inline typename property_map< leda::GRAPH<vtype, etype>, edge_all_t>::type
- get(edge_all_t, leda::GRAPH<vtype, etype>& g) {
- typedef typename property_map< leda::GRAPH<vtype, etype>, edge_all_t>::type
- pmap_type;
- return pmap_type(&g);
- }
- template <class vtype, class etype >
- inline typename property_map< leda::GRAPH<vtype, etype>, edge_all_t>::const_type
- get(edge_all_t, const leda::GRAPH<vtype, etype>& g) {
- typedef typename property_map< leda::GRAPH<vtype, etype>,
- edge_all_t>::const_type pmap_type;
- return pmap_type(&g);
- }
-
- // property map interface to the LEDA node_array class
-
- template <class E, class ERef, class NodeMapPtr>
- class leda_node_property_map
- : public put_get_helper<ERef, leda_node_property_map<E, ERef, NodeMapPtr> >
- {
- public:
- typedef E value_type;
- typedef ERef reference;
- typedef leda_node key_type;
- typedef lvalue_property_map_tag category;
- leda_node_property_map(NodeMapPtr a) : m_array(a) { }
- ERef operator[](leda_node n) const { return (*m_array)[n]; }
- protected:
- NodeMapPtr m_array;
- };
- template <class E>
- leda_node_property_map<E, const E&, const leda_node_array<E>*>
- make_leda_node_property_map(const leda_node_array<E>& a)
- {
- typedef leda_node_property_map<E, const E&, const leda_node_array<E>*>
- pmap_type;
- return pmap_type(&a);
- }
- template <class E>
- leda_node_property_map<E, E&, leda_node_array<E>*>
- make_leda_node_property_map(leda_node_array<E>& a)
- {
- typedef leda_node_property_map<E, E&, leda_node_array<E>*> pmap_type;
- return pmap_type(&a);
- }
-
- template <class E>
- leda_node_property_map<E, const E&, const leda_node_map<E>*>
- make_leda_node_property_map(const leda_node_map<E>& a)
- {
- typedef leda_node_property_map<E,const E&,const leda_node_map<E>*>
- pmap_type;
- return pmap_type(&a);
- }
- template <class E>
- leda_node_property_map<E, E&, leda_node_map<E>*>
- make_leda_node_property_map(leda_node_map<E>& a)
- {
- typedef leda_node_property_map<E, E&, leda_node_map<E>*> pmap_type;
- return pmap_type(&a);
- }
-
- // g++ 'enumeral_type' in template unification not implemented workaround
- template <class vtype, class etype, class Tag>
- struct property_map<leda::GRAPH<vtype, etype>, Tag> {
- typedef typename
- leda_property_map<Tag>::template bind_<vtype, etype> map_gen;
- typedef typename map_gen::type type;
- typedef typename map_gen::const_type const_type;
- };
-
- template <class vtype, class etype, class PropertyTag, class Key>
- inline
- typename boost::property_traits<
- typename boost::property_map<leda::GRAPH<vtype, etype>,PropertyTag>::const_type
- >::value_type
- get(PropertyTag p, const leda::GRAPH<vtype, etype>& g, const Key& key) {
- return get(get(p, g), key);
- }
-
- template <class vtype, class etype, class PropertyTag, class Key,class Value>
- inline void
- put(PropertyTag p, leda::GRAPH<vtype, etype>& g,
- const Key& key, const Value& value)
- {
- typedef typename property_map<leda::GRAPH<vtype, etype>, PropertyTag>::type Map;
- Map pmap = get(p, g);
- put(pmap, key, value);
- }
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_LEDA_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_MATRIX2GRAPH_HPP
-#define BOOST_GRAPH_MATRIX2GRAPH_HPP
-
-#include <utility>
-#include <boost/config.hpp>
-#include <boost/operators.hpp>
-#include <boost/int_iterator.hpp>
-#include <boost/graph/graph_traits.hpp>
-
-namespace boost {
-
- template <class Iter, class Vertex>
- class matrix_adj_iterator;
-
- template <class Iter, class Vertex>
- class matrix_incidence_iterator;
-
-}
-
-#define BOOST_GRAPH_ADAPT_MATRIX_TO_GRAPH(Matrix) \
-namespace boost { \
- template <> \
- struct graph_traits< Matrix > { \
- typedef Matrix::OneD::const_iterator Iter; \
- typedef Matrix::size_type V; \
- typedef V vertex_descriptor; \
- typedef Iter E; \
- typedef E edge_descriptor; \
- typedef boost::matrix_incidence_iterator<Iter, V> out_edge_iterator; \
- typedef boost::matrix_adj_iterator<Iter, V> adjacency_iterator; \
- typedef Matrix::size_type size_type; \
- typedef boost::int_iterator<size_type> vertex_iterator; \
- \
- friend std::pair<vertex_iterator, vertex_iterator> \
- vertices(const Matrix& g) { \
- typedef vertex_iterator VIter; \
- return std::make_pair(VIter(0), VIter(g.nrows())); \
- } \
- \
- friend std::pair<out_edge_iterator, out_edge_iterator> \
- out_edges(V v, const Matrix& g) { \
- typedef out_edge_iterator IncIter; \
- return std::make_pair(IncIter(g[v].begin()), \
- IncIter(g[v].end())); \
- } \
- friend std::pair<adjacency_iterator, adjacency_iterator> \
- adjacent_vertices(V v, const Matrix& g) { \
- typedef adjacency_iterator AdjIter; \
- return std::make_pair(AdjIter(g[v].begin()), \
- AdjIter(g[v].end())); \
- } \
- friend vertex_descriptor \
- source(E e, const Matrix& g) { \
- return e.row(); \
- } \
- friend vertex_descriptor \
- target(E e, const Matrix& g) { \
- return e.column(); \
- } \
- friend size_type \
- num_vertices(const Matrix& g) { \
- return g.nrows(); \
- } \
- friend size_type \
- num_edges(const Matrix& g) { \
- return g.nnz(); \
- } \
- friend size_type \
- out_degree(V i, const Matrix& g) { \
- return g[i].nnz(); \
- } \
- }; \
-}
-
-namespace boost {
-
- template <class Iter, class Vertex>
- class matrix_adj_iterator
- : public std::iterator<std::input_iterator_tag, Vertex >
- {
- typedef matrix_adj_iterator self;
- public:
- matrix_adj_iterator() { }
- matrix_adj_iterator(Iter i) : _iter(i) { }
- matrix_adj_iterator(const self& x) : _iter(x._iter) { }
- self& operator=(const self& x) { _iter = x._iter; return *this; }
- Vertex operator*() { return _iter.column(); }
- self& operator++() { ++_iter; return *this; }
- self operator++(int) { self t = *this; ++_iter; return t; }
- bool operator==(const self& x) const { return _iter == x._iter; }
- bool operator!=(const self& x) const { return _iter != x._iter; }
- protected:
- Iter _iter;
- };
-
- template <class Iter, class Vertex>
- class matrix_incidence_iterator
- : public std::iterator<std::input_iterator_tag, Iter >
- {
- typedef matrix_incidence_iterator self;
- public:
- matrix_incidence_iterator() { }
- matrix_incidence_iterator(Iter i) : _iter(i) { }
- matrix_incidence_iterator(const self& x) : _iter(x._iter) { }
- self& operator=(const self& x) { _iter = x._iter; return *this; }
- Iter operator*() { return _iter; }
- self& operator++() { ++_iter; return *this; }
- self operator++(int) { self t = *this; ++_iter; return t; }
- bool operator==(const self& x) const { return _iter == x._iter; }
- bool operator!=(const self& x) const { return _iter != x._iter; }
- protected:
- Iter _iter;
- };
-
-} /* namespace boost */
-
-#endif /* BOOST_GRAPH_MATRIX2GRAPH_HPP*/
+++ /dev/null
-//-*-c++-*-
-//=======================================================================
-// Copyright 1997-2001 University of Notre Dame.
-// Authors: Lie-Quan Lee, Jeremy Siek
-//
-// Distributed under the 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 MINIMUM_DEGREE_ORDERING_HPP
-#define MINIMUM_DEGREE_ORDERING_HPP
-
-#include <vector>
-#include <cassert>
-#include <boost/config.hpp>
-#include <boost/pending/bucket_sorter.hpp>
-#include <boost/detail/numeric_traits.hpp> // for integer_traits
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-
-namespace boost {
-
- namespace detail {
-
- //
- // Given a set of n integers (where the integer values range from
- // zero to n-1), we want to keep track of a collection of stacks
- // of integers. It so happens that an integer will appear in at
- // most one stack at a time, so the stacks form disjoint sets.
- // Because of these restrictions, we can use one big array to
- // store all the stacks, intertwined with one another.
- // No allocation/deallocation happens in the push()/pop() methods
- // so this is faster than using std::stack's.
- //
- template <class SignedInteger>
- class Stacks {
- typedef SignedInteger value_type;
- typedef typename std::vector<value_type>::size_type size_type;
- public:
- Stacks(size_type n) : data(n) {}
-
- //: stack
- class stack {
- typedef typename std::vector<value_type>::iterator Iterator;
- public:
- stack(Iterator _data, const value_type& head)
- : data(_data), current(head) {}
-
- // did not use default argument here to avoid internal compiler error
- // in g++.
- stack(Iterator _data)
- : data(_data), current(-(std::numeric_limits<value_type>::max)()) {}
-
- void pop() {
- assert(! empty());
- current = data[current];
- }
- void push(value_type v) {
- data[v] = current;
- current = v;
- }
- bool empty() {
- return current == -(std::numeric_limits<value_type>::max)();
- }
- value_type& top() { return current; }
- private:
- Iterator data;
- value_type current;
- };
-
- // To return a stack object
- stack make_stack()
- { return stack(data.begin()); }
- protected:
- std::vector<value_type> data;
- };
-
-
- // marker class, a generalization of coloring.
- //
- // This class is to provide a generalization of coloring which has
- // complexity of amortized constant time to set all vertices' color
- // back to be untagged. It implemented by increasing a tag.
- //
- // The colors are:
- // not tagged
- // tagged
- // multiple_tagged
- // done
- //
- template <class SignedInteger, class Vertex, class VertexIndexMap>
- class Marker {
- typedef SignedInteger value_type;
- typedef typename std::vector<value_type>::size_type size_type;
-
- static value_type done()
- { return (std::numeric_limits<value_type>::max)()/2; }
- public:
- Marker(size_type _num, VertexIndexMap index_map)
- : tag(1 - (std::numeric_limits<value_type>::max)()),
- data(_num, - (std::numeric_limits<value_type>::max)()),
- id(index_map) {}
-
- void mark_done(Vertex node) { data[get(id, node)] = done(); }
-
- bool is_done(Vertex node) { return data[get(id, node)] == done(); }
-
- void mark_tagged(Vertex node) { data[get(id, node)] = tag; }
-
- void mark_multiple_tagged(Vertex node) { data[get(id, node)] = multiple_tag; }
-
- bool is_tagged(Vertex node) const { return data[get(id, node)] >= tag; }
-
- bool is_not_tagged(Vertex node) const { return data[get(id, node)] < tag; }
-
- bool is_multiple_tagged(Vertex node) const
- { return data[get(id, node)] >= multiple_tag; }
-
- void increment_tag() {
- const size_type num = data.size();
- ++tag;
- if ( tag >= done() ) {
- tag = 1 - (std::numeric_limits<value_type>::max)();
- for (size_type i = 0; i < num; ++i)
- if ( data[i] < done() )
- data[i] = - (std::numeric_limits<value_type>::max)();
- }
- }
-
- void set_multiple_tag(value_type mdeg0)
- {
- const size_type num = data.size();
- multiple_tag = tag + mdeg0;
-
- if ( multiple_tag >= done() ) {
- tag = 1-(std::numeric_limits<value_type>::max)();
-
- for (size_type i=0; i<num; i++)
- if ( data[i] < done() )
- data[i] = -(std::numeric_limits<value_type>::max)();
-
- multiple_tag = tag + mdeg0;
- }
- }
-
- void set_tag_as_multiple_tag() { tag = multiple_tag; }
-
- protected:
- value_type tag;
- value_type multiple_tag;
- std::vector<value_type> data;
- VertexIndexMap id;
- };
-
- template< class Iterator, class SignedInteger,
- class Vertex, class VertexIndexMap, int offset = 1 >
- class Numbering {
- typedef SignedInteger number_type;
- number_type num; //start from 1 instead of zero
- Iterator data;
- number_type max_num;
- VertexIndexMap id;
- public:
- Numbering(Iterator _data, number_type _max_num, VertexIndexMap id)
- : num(1), data(_data), max_num(_max_num), id(id) {}
- void operator()(Vertex node) { data[get(id, node)] = -num; }
- bool all_done(number_type i = 0) const { return num + i > max_num; }
- void increment(number_type i = 1) { num += i; }
- bool is_numbered(Vertex node) const {
- return data[get(id, node)] < 0;
- }
- void indistinguishable(Vertex i, Vertex j) {
- data[get(id, i)] = - (get(id, j) + offset);
- }
- };
-
- template <class SignedInteger, class Vertex, class VertexIndexMap>
- class degreelists_marker {
- public:
- typedef SignedInteger value_type;
- typedef typename std::vector<value_type>::size_type size_type;
- degreelists_marker(size_type n, VertexIndexMap id)
- : marks(n, 0), id(id) {}
- void mark_need_update(Vertex i) { marks[get(id, i)] = 1; }
- bool need_update(Vertex i) { return marks[get(id, i)] == 1; }
- bool outmatched_or_done (Vertex i) { return marks[get(id, i)] == -1; }
- void mark(Vertex i) { marks[get(id, i)] = -1; }
- void unmark(Vertex i) { marks[get(id, i)] = 0; }
- private:
- std::vector<value_type> marks;
- VertexIndexMap id;
- };
-
- // Helper function object for edge removal
- template <class Graph, class MarkerP, class NumberD, class Stack,
- class VertexIndexMap>
- class predicateRemoveEdge1 {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename graph_traits<Graph>::edge_descriptor edge_t;
- public:
- predicateRemoveEdge1(Graph& _g, MarkerP& _marker,
- NumberD _numbering, Stack& n_e, VertexIndexMap id)
- : g(&_g), marker(&_marker), numbering(_numbering),
- neighbor_elements(&n_e), id(id) {}
-
- bool operator()(edge_t e) {
- vertex_t dist = target(e, *g);
- if ( marker->is_tagged(dist) )
- return true;
- marker->mark_tagged(dist);
- if (numbering.is_numbered(dist)) {
- neighbor_elements->push(get(id, dist));
- return true;
- }
- return false;
- }
- private:
- Graph* g;
- MarkerP* marker;
- NumberD numbering;
- Stack* neighbor_elements;
- VertexIndexMap id;
- };
-
- // Helper function object for edge removal
- template <class Graph, class MarkerP>
- class predicate_remove_tagged_edges
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename graph_traits<Graph>::edge_descriptor edge_t;
- public:
- predicate_remove_tagged_edges(Graph& _g, MarkerP& _marker)
- : g(&_g), marker(&_marker) {}
-
- bool operator()(edge_t e) {
- vertex_t dist = target(e, *g);
- if ( marker->is_tagged(dist) )
- return true;
- return false;
- }
- private:
- Graph* g;
- MarkerP* marker;
- };
-
- template<class Graph, class DegreeMap,
- class InversePermutationMap,
- class PermutationMap,
- class SuperNodeMap,
- class VertexIndexMap>
- class mmd_impl
- {
- // Typedefs
- typedef graph_traits<Graph> Traits;
- typedef typename Traits::vertices_size_type size_type;
- typedef typename detail::integer_traits<size_type>::difference_type
- diff_t;
- typedef typename Traits::vertex_descriptor vertex_t;
- typedef typename Traits::adjacency_iterator adj_iter;
- typedef iterator_property_map<vertex_t*,
- identity_property_map, vertex_t, vertex_t&> IndexVertexMap;
- typedef detail::Stacks<diff_t> Workspace;
- typedef bucket_sorter<size_type, vertex_t, DegreeMap, VertexIndexMap>
- DegreeLists;
- typedef Numbering<InversePermutationMap, diff_t, vertex_t,VertexIndexMap>
- NumberingD;
- typedef degreelists_marker<diff_t, vertex_t, VertexIndexMap>
- DegreeListsMarker;
- typedef Marker<diff_t, vertex_t, VertexIndexMap> MarkerP;
-
- // Data Members
-
- // input parameters
- Graph& G;
- int delta;
- DegreeMap degree;
- InversePermutationMap inverse_perm;
- PermutationMap perm;
- SuperNodeMap supernode_size;
- VertexIndexMap vertex_index_map;
-
- // internal data-structures
- std::vector<vertex_t> index_vertex_vec;
- size_type n;
- IndexVertexMap index_vertex_map;
- DegreeLists degreelists;
- NumberingD numbering;
- DegreeListsMarker degree_lists_marker;
- MarkerP marker;
- Workspace work_space;
- public:
- mmd_impl(Graph& g, size_type n_, int delta, DegreeMap degree,
- InversePermutationMap inverse_perm,
- PermutationMap perm,
- SuperNodeMap supernode_size,
- VertexIndexMap id)
- : G(g), delta(delta), degree(degree),
- inverse_perm(inverse_perm),
- perm(perm),
- supernode_size(supernode_size),
- vertex_index_map(id),
- index_vertex_vec(n_),
- n(n_),
- degreelists(n_ + 1, n_, degree, id),
- numbering(inverse_perm, n_, vertex_index_map),
- degree_lists_marker(n_, vertex_index_map),
- marker(n_, vertex_index_map),
- work_space(n_)
- {
- typename graph_traits<Graph>::vertex_iterator v, vend;
- size_type vid = 0;
- for (tie(v, vend) = vertices(G); v != vend; ++v, ++vid)
- index_vertex_vec[vid] = *v;
- index_vertex_map = IndexVertexMap(&index_vertex_vec[0]);
-
- // Initialize degreelists. Degreelists organizes the nodes
- // according to their degree.
- for (tie(v, vend) = vertices(G); v != vend; ++v) {
- put(degree, *v, out_degree(*v, G));
- degreelists.push(*v);
- }
- }
-
- void do_mmd()
- {
- // Eliminate the isolated nodes -- these are simply the nodes
- // with no neighbors, which are accessible as a list (really, a
- // stack) at location 0. Since these don't affect any other
- // nodes, we can eliminate them without doing degree updates.
- typename DegreeLists::stack list_isolated = degreelists[0];
- while (!list_isolated.empty()) {
- vertex_t node = list_isolated.top();
- marker.mark_done(node);
- numbering(node);
- numbering.increment();
- list_isolated.pop();
- }
- size_type min_degree = 1;
- typename DegreeLists::stack list_min_degree = degreelists[min_degree];
-
- while (list_min_degree.empty()) {
- ++min_degree;
- list_min_degree = degreelists[min_degree];
- }
-
- // check if the whole eliminating process is done
- while (!numbering.all_done()) {
-
- size_type min_degree_limit = min_degree + delta; // WARNING
- typename Workspace::stack llist = work_space.make_stack();
-
- // multiple elimination
- while (delta >= 0) {
-
- // Find the next non-empty degree
- for (list_min_degree = degreelists[min_degree];
- list_min_degree.empty() && min_degree <= min_degree_limit;
- ++min_degree, list_min_degree = degreelists[min_degree])
- ;
- if (min_degree > min_degree_limit)
- break;
-
- const vertex_t node = list_min_degree.top();
- const size_type node_id = get(vertex_index_map, node);
- list_min_degree.pop();
- numbering(node);
-
- // check if node is the last one
- if (numbering.all_done(supernode_size[node])) {
- numbering.increment(supernode_size[node]);
- break;
- }
- marker.increment_tag();
- marker.mark_tagged(node);
-
- this->eliminate(node);
-
- numbering.increment(supernode_size[node]);
- llist.push(node_id);
- } // multiple elimination
-
- if (numbering.all_done())
- break;
-
- this->update( llist, min_degree);
- }
-
- } // do_mmd()
-
- void eliminate(vertex_t node)
- {
- typename Workspace::stack element_neighbor = work_space.make_stack();
-
- // Create two function objects for edge removal
- typedef typename Workspace::stack WorkStack;
- predicateRemoveEdge1<Graph, MarkerP, NumberingD,
- WorkStack, VertexIndexMap>
- p(G, marker, numbering, element_neighbor, vertex_index_map);
-
- predicate_remove_tagged_edges<Graph, MarkerP> p2(G, marker);
-
- // Reconstruct the adjacent node list, push element neighbor in a List.
- remove_out_edge_if(node, p, G);
- //during removal element neighbors are collected.
-
- while (!element_neighbor.empty()) {
- // element absorb
- size_type e_id = element_neighbor.top();
- vertex_t element = get(index_vertex_map, e_id);
- adj_iter i, i_end;
- for (tie(i, i_end) = adjacent_vertices(element, G); i != i_end; ++i){
- vertex_t i_node = *i;
- if (!marker.is_tagged(i_node) && !numbering.is_numbered(i_node)) {
- marker.mark_tagged(i_node);
- add_edge(node, i_node, G);
- }
- }
- element_neighbor.pop();
- }
- adj_iter v, ve;
- for (tie(v, ve) = adjacent_vertices(node, G); v != ve; ++v) {
- vertex_t v_node = *v;
- if (!degree_lists_marker.need_update(v_node)
- && !degree_lists_marker.outmatched_or_done(v_node)) {
- degreelists.remove(v_node);
- }
- //update out edges of v_node
- remove_out_edge_if(v_node, p2, G);
-
- if ( out_degree(v_node, G) == 0 ) { // indistinguishable nodes
- supernode_size[node] += supernode_size[v_node];
- supernode_size[v_node] = 0;
- numbering.indistinguishable(v_node, node);
- marker.mark_done(v_node);
- degree_lists_marker.mark(v_node);
- } else { // not indistinguishable nodes
- add_edge(v_node, node, G);
- degree_lists_marker.mark_need_update(v_node);
- }
- }
- } // eliminate()
-
-
- template <class Stack>
- void update(Stack llist, size_type& min_degree)
- {
- size_type min_degree0 = min_degree + delta + 1;
-
- while (! llist.empty()) {
- size_type deg, deg0 = 0;
-
- marker.set_multiple_tag(min_degree0);
- typename Workspace::stack q2list = work_space.make_stack();
- typename Workspace::stack qxlist = work_space.make_stack();
-
- vertex_t current = get(index_vertex_map, llist.top());
- adj_iter i, ie;
- for (tie(i,ie) = adjacent_vertices(current, G); i != ie; ++i) {
- vertex_t i_node = *i;
- const size_type i_id = get(vertex_index_map, i_node);
- if (supernode_size[i_node] != 0) {
- deg0 += supernode_size[i_node];
- marker.mark_multiple_tagged(i_node);
- if (degree_lists_marker.need_update(i_node)) {
- if (out_degree(i_node, G) == 2)
- q2list.push(i_id);
- else
- qxlist.push(i_id);
- }
- }
- }
-
- while (!q2list.empty()) {
- const size_type u_id = q2list.top();
- vertex_t u_node = get(index_vertex_map, u_id);
- // if u_id is outmatched by others, no need to update degree
- if (degree_lists_marker.outmatched_or_done(u_node)) {
- q2list.pop();
- continue;
- }
- marker.increment_tag();
- deg = deg0;
-
- adj_iter nu = adjacent_vertices(u_node, G).first;
- vertex_t neighbor = *nu;
- if (neighbor == u_node) {
- ++nu;
- neighbor = *nu;
- }
- if (numbering.is_numbered(neighbor)) {
- adj_iter i, ie;
- for (tie(i,ie) = adjacent_vertices(neighbor, G);
- i != ie; ++i) {
- const vertex_t i_node = *i;
- if (i_node == u_node || supernode_size[i_node] == 0)
- continue;
- if (marker.is_tagged(i_node)) {
- if (degree_lists_marker.need_update(i_node)) {
- if ( out_degree(i_node, G) == 2 ) { // is indistinguishable
- supernode_size[u_node] += supernode_size[i_node];
- supernode_size[i_node] = 0;
- numbering.indistinguishable(i_node, u_node);
- marker.mark_done(i_node);
- degree_lists_marker.mark(i_node);
- } else // is outmatched
- degree_lists_marker.mark(i_node);
- }
- } else {
- marker.mark_tagged(i_node);
- deg += supernode_size[i_node];
- }
- }
- } else
- deg += supernode_size[neighbor];
-
- deg -= supernode_size[u_node];
- degree[u_node] = deg; //update degree
- degreelists[deg].push(u_node);
- //u_id has been pushed back into degreelists
- degree_lists_marker.unmark(u_node);
- if (min_degree > deg)
- min_degree = deg;
- q2list.pop();
- } // while (!q2list.empty())
-
- while (!qxlist.empty()) {
- const size_type u_id = qxlist.top();
- const vertex_t u_node = get(index_vertex_map, u_id);
-
- // if u_id is outmatched by others, no need to update degree
- if (degree_lists_marker.outmatched_or_done(u_node)) {
- qxlist.pop();
- continue;
- }
- marker.increment_tag();
- deg = deg0;
- adj_iter i, ie;
- for (tie(i, ie) = adjacent_vertices(u_node, G); i != ie; ++i) {
- vertex_t i_node = *i;
- if (marker.is_tagged(i_node))
- continue;
- marker.mark_tagged(i_node);
-
- if (numbering.is_numbered(i_node)) {
- adj_iter j, je;
- for (tie(j, je) = adjacent_vertices(i_node, G); j != je; ++j) {
- const vertex_t j_node = *j;
- if (marker.is_not_tagged(j_node)) {
- marker.mark_tagged(j_node);
- deg += supernode_size[j_node];
- }
- }
- } else
- deg += supernode_size[i_node];
- } // for adjacent vertices of u_node
- deg -= supernode_size[u_node];
- degree[u_node] = deg;
- degreelists[deg].push(u_node);
- // u_id has been pushed back into degreelists
- degree_lists_marker.unmark(u_node);
- if (min_degree > deg)
- min_degree = deg;
- qxlist.pop();
- } // while (!qxlist.empty()) {
-
- marker.set_tag_as_multiple_tag();
- llist.pop();
- } // while (! llist.empty())
-
- } // update()
-
-
- void build_permutation(InversePermutationMap next,
- PermutationMap prev)
- {
- // collect the permutation info
- size_type i;
- for (i = 0; i < n; ++i) {
- diff_t size = supernode_size[get(index_vertex_map, i)];
- if ( size <= 0 ) {
- prev[i] = next[i];
- supernode_size[get(index_vertex_map, i)]
- = next[i] + 1; // record the supernode info
- } else
- prev[i] = - next[i];
- }
- for (i = 1; i < n + 1; ++i) {
- if ( prev[i-1] > 0 )
- continue;
- diff_t parent = i;
- while ( prev[parent - 1] < 0 ) {
- parent = - prev[parent - 1];
- }
-
- diff_t root = parent;
- diff_t num = prev[root - 1] + 1;
- next[i-1] = - num;
- prev[root-1] = num;
-
- parent = i;
- diff_t next_node = - prev[parent - 1];
- while (next_node > 0) {
- prev[parent-1] = - root;
- parent = next_node;
- next_node = - prev[parent - 1];
- }
- }
- for (i = 0; i < n; i++) {
- diff_t num = - next[i] - 1;
- next[i] = num;
- prev[num] = i;
- }
- } // build_permutation()
- };
-
- } //namespace detail
-
-
- // MMD algorithm
- //
- //The implementation presently includes the enhancements for mass
- //elimination, incomplete degree update, multiple elimination, and
- //external degree.
- //
- //Important Note: This implementation requires the BGL graph to be
- //directed. Therefore, nonzero entry (i, j) in a symmetrical matrix
- //A coresponds to two directed edges (i->j and j->i).
- //
- //see Alan George and Joseph W. H. Liu, The Evolution of the Minimum
- //Degree Ordering Algorithm, SIAM Review, 31, 1989, Page 1-19
- template<class Graph, class DegreeMap,
- class InversePermutationMap,
- class PermutationMap,
- class SuperNodeMap, class VertexIndexMap>
- void minimum_degree_ordering
- (Graph& G,
- DegreeMap degree,
- InversePermutationMap inverse_perm,
- PermutationMap perm,
- SuperNodeMap supernode_size,
- int delta,
- VertexIndexMap vertex_index_map)
- {
- detail::mmd_impl<Graph,DegreeMap,InversePermutationMap,
- PermutationMap, SuperNodeMap, VertexIndexMap>
- impl(G, num_vertices(G), delta, degree, inverse_perm,
- perm, supernode_size, vertex_index_map);
- impl.do_mmd();
- impl.build_permutation(inverse_perm, perm);
- }
-
-} // namespace boost
-
-#endif // MINIMUM_DEGREE_ORDERING_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_NAMED_FUNCTION_PARAMS_HPP
-#define BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP
-
-#include <boost/graph/properties.hpp>
-
-namespace boost {
-
- struct distance_compare_t { };
- struct distance_combine_t { };
- struct distance_inf_t { };
- struct distance_zero_t { };
- struct buffer_param_t { };
- struct edge_copy_t { };
- struct vertex_copy_t { };
- struct vertex_isomorphism_t { };
- struct vertex_invariant_t { };
- struct vertex_invariant1_t { };
- struct vertex_invariant2_t { };
- struct edge_compare_t { };
- struct vertex_max_invariant_t { };
- struct orig_to_copy_t { };
- struct root_vertex_t { };
- struct attractive_force_t { };
- struct repulsive_force_t { };
- struct force_pairs_t { };
- struct cooling_t { };
- struct vertex_displacement_t { };
- struct iterations_t { };
- struct diameter_range_t { };
- struct learning_constant_range_t { };
-
- namespace detail {
- template <class T>
- struct wrap_ref {
- wrap_ref(T& r) : ref(r) {}
- T& ref;
- };
- }
-
- template <typename T, typename Tag, typename Base = no_property>
- struct bgl_named_params : public Base
- {
- typedef bgl_named_params self;
- typedef Base next_type;
- typedef Tag tag_type;
- typedef T value_type;
- bgl_named_params(T v) : m_value(v) { }
- bgl_named_params(T v, const Base& b) : Base(b), m_value(v) { }
- T m_value;
-
- template <typename WeightMap>
- bgl_named_params<WeightMap, edge_weight_t, self>
- weight_map(const WeightMap& pmap) const {
- typedef bgl_named_params<WeightMap, edge_weight_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename WeightMap>
- bgl_named_params<WeightMap, edge_weight2_t, self>
- weight_map2(const WeightMap& pmap) const {
- typedef bgl_named_params<WeightMap, edge_weight2_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename DistanceMap>
- bgl_named_params<DistanceMap, vertex_distance_t, self>
- distance_map(const DistanceMap& pmap) const {
- typedef bgl_named_params<DistanceMap, vertex_distance_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename PredecessorMap>
- bgl_named_params<PredecessorMap, vertex_predecessor_t, self>
- predecessor_map(const PredecessorMap& pmap) const {
- typedef bgl_named_params<PredecessorMap, vertex_predecessor_t, self>
- Params;
- return Params(pmap, *this);
- }
-
- template <typename RankMap>
- bgl_named_params<RankMap, vertex_rank_t, self>
- rank_map(const RankMap& pmap) const {
- typedef bgl_named_params<RankMap, vertex_rank_t, self>
- Params;
- return Params(pmap, *this);
- }
-
- template <typename RootMap>
- bgl_named_params<RootMap, vertex_root_t, self>
- root_map(const RootMap& pmap) const {
- typedef bgl_named_params<RootMap, vertex_root_t, self>
- Params;
- return Params(pmap, *this);
- }
-
- template <typename Vertex>
- bgl_named_params<Vertex, root_vertex_t, self>
- root_vertex(const Vertex& r) const {
- typedef bgl_named_params<Vertex, root_vertex_t, self> Params;
- return Params(r, *this);
- }
-
- template <typename EdgeCentralityMap>
- bgl_named_params<EdgeCentralityMap, edge_centrality_t, self>
- edge_centrality_map(const EdgeCentralityMap& r) const {
- typedef bgl_named_params<EdgeCentralityMap, edge_centrality_t, self> Params;
- return Params(r, *this);
- }
-
- template <typename CentralityMap>
- bgl_named_params<CentralityMap, vertex_centrality_t, self>
- centrality_map(const CentralityMap& r) const {
- typedef bgl_named_params<CentralityMap, vertex_centrality_t, self> Params;
- return Params(r, *this);
- }
-
- template <typename ColorMap>
- bgl_named_params<ColorMap, vertex_color_t, self>
- color_map(const ColorMap& pmap) const {
- typedef bgl_named_params<ColorMap, vertex_color_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename ColorMap>
- bgl_named_params<ColorMap, vertex_color_t, self>
- vertex_color_map(const ColorMap& pmap) const {
- typedef bgl_named_params<ColorMap, vertex_color_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename ColorMap>
- bgl_named_params<ColorMap, edge_color_t, self>
- edge_color_map(const ColorMap& pmap) const {
- typedef bgl_named_params<ColorMap, edge_color_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename CapacityMap>
- bgl_named_params<CapacityMap, edge_capacity_t, self>
- capacity_map(CapacityMap pmap) {
- typedef bgl_named_params<CapacityMap, edge_capacity_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename Residual_CapacityMap>
- bgl_named_params<Residual_CapacityMap, edge_residual_capacity_t, self>
- residual_capacity_map(Residual_CapacityMap pmap) {
- typedef bgl_named_params<Residual_CapacityMap,
- edge_residual_capacity_t, self>
- Params;
- return Params(pmap, *this);
- }
-
- template <typename ReverseMap>
- bgl_named_params<ReverseMap, edge_reverse_t, self>
- reverse_edge_map(ReverseMap pmap) {
- typedef bgl_named_params<ReverseMap,
- edge_reverse_t, self>
- Params;
- return Params(pmap, *this);
- }
-
- template <typename DiscoverTimeMap>
- bgl_named_params<DiscoverTimeMap, vertex_discover_time_t, self>
- discover_time_map(const DiscoverTimeMap& pmap) const {
- typedef bgl_named_params<DiscoverTimeMap, vertex_discover_time_t, self>
- Params;
- return Params(pmap, *this);
- }
-
- template <typename IndexMap>
- bgl_named_params<IndexMap, vertex_index_t, self>
- vertex_index_map(const IndexMap& pmap) const {
- typedef bgl_named_params<IndexMap, vertex_index_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename IndexMap>
- bgl_named_params<IndexMap, vertex_index1_t, self>
- vertex_index1_map(const IndexMap& pmap) const {
- typedef bgl_named_params<IndexMap, vertex_index1_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename IndexMap>
- bgl_named_params<IndexMap, vertex_index2_t, self>
- vertex_index2_map(const IndexMap& pmap) const {
- typedef bgl_named_params<IndexMap, vertex_index2_t, self> Params;
- return Params(pmap, *this);
- }
-
- template <typename Visitor>
- bgl_named_params<Visitor, graph_visitor_t, self>
- visitor(const Visitor& vis) const {
- typedef bgl_named_params<Visitor, graph_visitor_t, self> Params;
- return Params(vis, *this);
- }
-
- template <typename Compare>
- bgl_named_params<Compare, distance_compare_t, self>
- distance_compare(Compare cmp) const {
- typedef bgl_named_params<Compare, distance_compare_t, self> Params;
- return Params(cmp, *this);
- }
-
- template <typename Combine>
- bgl_named_params<Combine, distance_combine_t, self>
- distance_combine(Combine cmb) const {
- typedef bgl_named_params<Combine, distance_combine_t, self> Params;
- return Params(cmb, *this);
- }
-
- template <typename Init>
- bgl_named_params<Init, distance_inf_t, self>
- distance_inf(Init init) const {
- typedef bgl_named_params<Init, distance_inf_t, self> Params;
- return Params(init, *this);
- }
-
- template <typename Init>
- bgl_named_params<Init, distance_zero_t, self>
- distance_zero(Init init) const {
- typedef bgl_named_params<Init, distance_zero_t, self> Params;
- return Params(init, *this);
- }
-
- template <typename Buffer>
- bgl_named_params<detail::wrap_ref<Buffer>, buffer_param_t, self>
- buffer(Buffer& b) const {
- typedef bgl_named_params<detail::wrap_ref<Buffer>, buffer_param_t, self>
- Params;
- return Params(detail::wrap_ref<Buffer>(b), *this);
- }
-
- template <typename Copier>
- bgl_named_params<Copier, edge_copy_t, self>
- edge_copy(const Copier& c) const {
- typedef bgl_named_params<Copier, edge_copy_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename Copier>
- bgl_named_params<Copier, vertex_copy_t, self>
- vertex_copy(const Copier& c) const {
- typedef bgl_named_params<Copier, vertex_copy_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename Orig2CopyMap>
- bgl_named_params<Orig2CopyMap, orig_to_copy_t, self>
- orig_to_copy(const Orig2CopyMap& c) const {
- typedef bgl_named_params<Orig2CopyMap, orig_to_copy_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename IsoMap>
- bgl_named_params<IsoMap, vertex_isomorphism_t, self>
- isomorphism_map(const IsoMap& c) const {
- typedef bgl_named_params<IsoMap, vertex_isomorphism_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename VertexInvar>
- bgl_named_params<VertexInvar, vertex_invariant_t, self>
- vertex_invariant(const VertexInvar& c) const {
- typedef bgl_named_params<VertexInvar, vertex_invariant_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename VertexDisplacement>
- bgl_named_params<VertexDisplacement, vertex_displacement_t, self>
- displacement_map(const VertexDisplacement& c) const {
- typedef bgl_named_params<VertexDisplacement, vertex_displacement_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename AttractiveForce>
- bgl_named_params<AttractiveForce, attractive_force_t, self>
- attractive_force(const AttractiveForce& c) {
- typedef bgl_named_params<AttractiveForce, attractive_force_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename RepulsiveForce>
- bgl_named_params<RepulsiveForce, repulsive_force_t, self>
- repulsive_force(const RepulsiveForce& c) {
- typedef bgl_named_params<RepulsiveForce, repulsive_force_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename ForcePairs>
- bgl_named_params<ForcePairs, force_pairs_t, self>
- force_pairs(const ForcePairs& c) {
- typedef bgl_named_params<ForcePairs, force_pairs_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename Cooling>
- bgl_named_params<Cooling, cooling_t, self>
- cooling(const Cooling& c) {
- typedef bgl_named_params<Cooling, cooling_t, self> Params;
- return Params(c, *this);
- }
-
- template <typename TP>
- bgl_named_params<TP, iterations_t, self>
- iterations(const TP& c) {
- typedef bgl_named_params<TP, iterations_t, self> Params;
- return Params(c, *this);
- }
-
- template<typename TP>
- bgl_named_params<std::pair<TP, TP>, diameter_range_t, self>
- diameter_range(const std::pair<TP, TP>& c) {
- typedef bgl_named_params<std::pair<TP, TP>, diameter_range_t, self> Params;
- return Params(c, *this);
- }
-
- template<typename TP>
- bgl_named_params<std::pair<TP, TP>, learning_constant_range_t, self>
- learning_constant_range(const std::pair<TP, TP>& c) {
- typedef bgl_named_params<std::pair<TP, TP>, learning_constant_range_t, self>
- Params;
- return Params(c, *this);
- }
- };
-
- template <typename WeightMap>
- bgl_named_params<WeightMap, edge_weight_t>
- weight_map(WeightMap pmap) {
- typedef bgl_named_params<WeightMap, edge_weight_t> Params;
- return Params(pmap);
- }
-
- template <typename WeightMap>
- bgl_named_params<WeightMap, edge_weight2_t>
- weight_map2(WeightMap pmap) {
- typedef bgl_named_params<WeightMap, edge_weight2_t> Params;
- return Params(pmap);
- }
-
- template <typename DistanceMap>
- bgl_named_params<DistanceMap, vertex_distance_t>
- distance_map(DistanceMap pmap) {
- typedef bgl_named_params<DistanceMap, vertex_distance_t> Params;
- return Params(pmap);
- }
-
- template <typename PredecessorMap>
- bgl_named_params<PredecessorMap, vertex_predecessor_t>
- predecessor_map(PredecessorMap pmap) {
- typedef bgl_named_params<PredecessorMap, vertex_predecessor_t> Params;
- return Params(pmap);
- }
-
- template <typename RankMap>
- bgl_named_params<RankMap, vertex_rank_t>
- rank_map(RankMap pmap) {
- typedef bgl_named_params<RankMap, vertex_rank_t> Params;
- return Params(pmap);
- }
-
- template <typename RootMap>
- bgl_named_params<RootMap, vertex_root_t>
- root_map(RootMap pmap) {
- typedef bgl_named_params<RootMap, vertex_root_t> Params;
- return Params(pmap);
- }
-
- template <typename Vertex>
- bgl_named_params<Vertex, root_vertex_t>
- root_vertex(const Vertex& r) {
- typedef bgl_named_params<Vertex, root_vertex_t> Params;
- return Params(r);
- }
-
- template <typename EdgeCentralityMap>
- bgl_named_params<EdgeCentralityMap, edge_centrality_t>
- edge_centrality_map(const EdgeCentralityMap& r) {
- typedef bgl_named_params<EdgeCentralityMap, edge_centrality_t> Params;
- return Params(r);
- }
-
- template <typename CentralityMap>
- bgl_named_params<CentralityMap, vertex_centrality_t>
- centrality_map(const CentralityMap& r) {
- typedef bgl_named_params<CentralityMap, vertex_centrality_t> Params;
- return Params(r);
- }
-
- template <typename ColorMap>
- bgl_named_params<ColorMap, vertex_color_t>
- color_map(ColorMap pmap) {
- typedef bgl_named_params<ColorMap, vertex_color_t> Params;
- return Params(pmap);
- }
-
- template <typename CapacityMap>
- bgl_named_params<CapacityMap, edge_capacity_t>
- capacity_map(CapacityMap pmap) {
- typedef bgl_named_params<CapacityMap, edge_capacity_t> Params;
- return Params(pmap);
- }
-
- template <typename Residual_CapacityMap>
- bgl_named_params<Residual_CapacityMap, edge_residual_capacity_t>
- residual_capacity_map(Residual_CapacityMap pmap) {
- typedef bgl_named_params<Residual_CapacityMap, edge_residual_capacity_t>
- Params;
- return Params(pmap);
- }
-
- template <typename ReverseMap>
- bgl_named_params<ReverseMap, edge_reverse_t>
- reverse_edge_map(ReverseMap pmap) {
- typedef bgl_named_params<ReverseMap, edge_reverse_t>
- Params;
- return Params(pmap);
- }
-
- template <typename DiscoverTimeMap>
- bgl_named_params<DiscoverTimeMap, vertex_discover_time_t>
- discover_time_map(DiscoverTimeMap pmap) {
- typedef bgl_named_params<DiscoverTimeMap, vertex_discover_time_t> Params;
- return Params(pmap);
- }
-
- template <typename IndexMap>
- bgl_named_params<IndexMap, vertex_index_t>
- vertex_index_map(IndexMap pmap) {
- typedef bgl_named_params<IndexMap, vertex_index_t> Params;
- return Params(pmap);
- }
-
- template <typename IndexMap>
- bgl_named_params<IndexMap, vertex_index1_t>
- vertex_index1_map(const IndexMap& pmap) {
- typedef bgl_named_params<IndexMap, vertex_index1_t> Params;
- return Params(pmap);
- }
-
- template <typename IndexMap>
- bgl_named_params<IndexMap, vertex_index2_t>
- vertex_index2_map(const IndexMap& pmap) {
- typedef bgl_named_params<IndexMap, vertex_index2_t> Params;
- return Params(pmap);
- }
-
- template <typename Visitor>
- bgl_named_params<Visitor, graph_visitor_t>
- visitor(const Visitor& vis) {
- typedef bgl_named_params<Visitor, graph_visitor_t> Params;
- return Params(vis);
- }
-
- template <typename Compare>
- bgl_named_params<Compare, distance_compare_t>
- distance_compare(Compare cmp) {
- typedef bgl_named_params<Compare, distance_compare_t> Params;
- return Params(cmp);
- }
-
- template <typename Combine>
- bgl_named_params<Combine, distance_combine_t>
- distance_combine(Combine cmb) {
- typedef bgl_named_params<Combine, distance_combine_t> Params;
- return Params(cmb);
- }
-
- template <typename Init>
- bgl_named_params<Init, distance_inf_t>
- distance_inf(Init init) {
- typedef bgl_named_params<Init, distance_inf_t> Params;
- return Params(init);
- }
-
- template <typename Init>
- bgl_named_params<Init, distance_zero_t>
- distance_zero(Init init) {
- typedef bgl_named_params<Init, distance_zero_t> Params;
- return Params(init);
- }
-
- template <typename Buffer>
- bgl_named_params<detail::wrap_ref<Buffer>, buffer_param_t>
- buffer(Buffer& b) {
- typedef bgl_named_params<detail::wrap_ref<Buffer>, buffer_param_t> Params;
- return Params(detail::wrap_ref<Buffer>(b));
- }
-
- template <typename Copier>
- bgl_named_params<Copier, edge_copy_t>
- edge_copy(const Copier& c) {
- typedef bgl_named_params<Copier, edge_copy_t> Params;
- return Params(c);
- }
-
- template <typename Copier>
- bgl_named_params<Copier, vertex_copy_t>
- vertex_copy(const Copier& c) {
- typedef bgl_named_params<Copier, vertex_copy_t> Params;
- return Params(c);
- }
-
- template <typename Orig2CopyMap>
- bgl_named_params<Orig2CopyMap, orig_to_copy_t>
- orig_to_copy(const Orig2CopyMap& c) {
- typedef bgl_named_params<Orig2CopyMap, orig_to_copy_t> Params;
- return Params(c);
- }
-
- template <typename IsoMap>
- bgl_named_params<IsoMap, vertex_isomorphism_t>
- isomorphism_map(const IsoMap& c) {
- typedef bgl_named_params<IsoMap, vertex_isomorphism_t> Params;
- return Params(c);
- }
-
- template <typename VertexInvar>
- bgl_named_params<VertexInvar, vertex_invariant_t>
- vertex_invariant(const VertexInvar& c) {
- typedef bgl_named_params<VertexInvar, vertex_invariant_t> Params;
- return Params(c);
- }
-
- template <typename VertexDisplacement>
- bgl_named_params<VertexDisplacement, vertex_displacement_t>
- displacement_map(const VertexDisplacement& c) {
- typedef bgl_named_params<VertexDisplacement, vertex_displacement_t> Params;
- return Params(c);
- }
-
- template <typename AttractiveForce>
- bgl_named_params<AttractiveForce, attractive_force_t>
- attractive_force(const AttractiveForce& c) {
- typedef bgl_named_params<AttractiveForce, attractive_force_t> Params;
- return Params(c);
- }
-
- template <typename RepulsiveForce>
- bgl_named_params<RepulsiveForce, repulsive_force_t>
- repulsive_force(const RepulsiveForce& c) {
- typedef bgl_named_params<RepulsiveForce, repulsive_force_t> Params;
- return Params(c);
- }
-
- template <typename ForcePairs>
- bgl_named_params<ForcePairs, force_pairs_t>
- force_pairs(const ForcePairs& c) {
- typedef bgl_named_params<ForcePairs, force_pairs_t> Params;
- return Params(c);
- }
-
- template <typename Cooling>
- bgl_named_params<Cooling, cooling_t>
- cooling(const Cooling& c) {
- typedef bgl_named_params<Cooling, cooling_t> Params;
- return Params(c);
- }
-
- template <typename T>
- bgl_named_params<T, iterations_t>
- iterations(const T& c) {
- typedef bgl_named_params<T, iterations_t> Params;
- return Params(c);
- }
-
- template<typename T>
- bgl_named_params<std::pair<T, T>, diameter_range_t>
- diameter_range(const std::pair<T, T>& c) {
- typedef bgl_named_params<std::pair<T, T>, diameter_range_t> Params;
- return Params(c);
- }
-
- template<typename T>
- bgl_named_params<std::pair<T, T>, learning_constant_range_t>
- learning_constant_range(const std::pair<T, T>& c) {
- typedef bgl_named_params<std::pair<T, T>, learning_constant_range_t>
- Params;
- return Params(c);
- }
-
- //===========================================================================
- // Functions for extracting parameters from bgl_named_params
-
- template <class Tag1, class Tag2, class T1, class Base>
- inline
- typename property_value< bgl_named_params<T1,Tag1,Base>, Tag2>::type
- get_param(const bgl_named_params<T1,Tag1,Base>& p, Tag2 tag2)
- {
- enum { match = detail::same_property<Tag1,Tag2>::value };
- typedef typename
- property_value< bgl_named_params<T1,Tag1,Base>, Tag2>::type T2;
- T2* t2 = 0;
- typedef detail::property_value_dispatch<match> Dispatcher;
- return Dispatcher::const_get_value(p, t2, tag2);
- }
-
-
- namespace detail {
- // MSVC++ workaround
- template <class Param>
- struct choose_param_helper {
- template <class Default> struct result { typedef Param type; };
- template <typename Default>
- static const Param& apply(const Param& p, const Default&) { return p; }
- };
- template <>
- struct choose_param_helper<error_property_not_found> {
- template <class Default> struct result { typedef Default type; };
- template <typename Default>
- static const Default& apply(const error_property_not_found&, const Default& d)
- { return d; }
- };
- } // namespace detail
-
- template <class P, class Default>
- const typename detail::choose_param_helper<P>::template result<Default>::type&
- choose_param(const P& param, const Default& d) {
- return detail::choose_param_helper<P>::apply(param, d);
- }
-
- template <typename T>
- inline bool is_default_param(const T&) { return false; }
-
- inline bool is_default_param(const detail::error_property_not_found&)
- { return true; }
-
- namespace detail {
-
- struct choose_parameter {
- template <class P, class Graph, class Tag>
- struct bind_ {
- typedef const P& const_result_type;
- typedef const P& result_type;
- typedef P type;
- };
-
- template <class P, class Graph, class Tag>
- static typename bind_<P, Graph, Tag>::const_result_type
- const_apply(const P& p, const Graph&, Tag&)
- { return p; }
-
- template <class P, class Graph, class Tag>
- static typename bind_<P, Graph, Tag>::result_type
- apply(const P& p, Graph&, Tag&)
- { return p; }
- };
-
- struct choose_default_param {
- template <class P, class Graph, class Tag>
- struct bind_ {
- typedef typename property_map<Graph, Tag>::type
- result_type;
- typedef typename property_map<Graph, Tag>::const_type
- const_result_type;
- typedef typename property_map<Graph, Tag>::const_type
- type;
- };
-
- template <class P, class Graph, class Tag>
- static typename bind_<P, Graph, Tag>::const_result_type
- const_apply(const P&, const Graph& g, Tag tag) {
- return get(tag, g);
- }
- template <class P, class Graph, class Tag>
- static typename bind_<P, Graph, Tag>::result_type
- apply(const P&, Graph& g, Tag tag) {
- return get(tag, g);
- }
- };
-
- template <class Param>
- struct choose_property_map {
- typedef choose_parameter type;
- };
- template <>
- struct choose_property_map<detail::error_property_not_found> {
- typedef choose_default_param type;
- };
-
- template <class Param, class Graph, class Tag>
- struct choose_pmap_helper {
- typedef typename choose_property_map<Param>::type Selector;
- typedef typename Selector:: template bind_<Param, Graph, Tag> Bind;
- typedef Bind type;
- typedef typename Bind::result_type result_type;
- typedef typename Bind::const_result_type const_result_type;
- typedef typename Bind::type result;
- };
-
- // used in the max-flow algorithms
- template <class Graph, class P, class T, class R>
- struct edge_capacity_value
- {
- typedef bgl_named_params<P, T, R> Params;
- typedef typename property_value< Params, edge_capacity_t>::type Param;
- typedef typename detail::choose_pmap_helper<Param, Graph,
- edge_capacity_t>::result CapacityEdgeMap;
- typedef typename property_traits<CapacityEdgeMap>::value_type type;
- };
-
- } // namespace detail
-
-
- // Use this function instead of choose_param() when you want
- // to avoid requiring get(tag, g) when it is not used.
- template <typename Param, typename Graph, typename PropertyTag>
- typename
- detail::choose_pmap_helper<Param,Graph,PropertyTag>::const_result_type
- choose_const_pmap(const Param& p, const Graph& g, PropertyTag tag)
- {
- typedef typename
- detail::choose_pmap_helper<Param,Graph,PropertyTag>::Selector Choice;
- return Choice::const_apply(p, g, tag);
- }
-
- template <typename Param, typename Graph, typename PropertyTag>
- typename detail::choose_pmap_helper<Param,Graph,PropertyTag>::result_type
- choose_pmap(const Param& p, Graph& g, PropertyTag tag)
- {
- typedef typename
- detail::choose_pmap_helper<Param,Graph,PropertyTag>::Selector Choice;
- return Choice::apply(p, g, tag);
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_NEIGHBOR_BREADTH_FIRST_SEARCH_HPP
-#define BOOST_GRAPH_NEIGHBOR_BREADTH_FIRST_SEARCH_HPP
-
-/*
- Neighbor Breadth First Search
- Like BFS, but traverses in-edges as well as out-edges.
- (for directed graphs only. use normal BFS for undirected graphs)
-*/
-#include <boost/config.hpp>
-#include <vector>
-#include <boost/pending/queue.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-namespace boost {
-
- template <class Visitor, class Graph>
- struct NeighborBFSVisitorConcept {
- void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
- vis.initialize_vertex(u, g);
- vis.discover_vertex(u, g);
- vis.examine_vertex(u, g);
- vis.examine_out_edge(e, g);
- vis.examine_in_edge(e, g);
- vis.tree_out_edge(e, g);
- vis.tree_in_edge(e, g);
- vis.non_tree_out_edge(e, g);
- vis.non_tree_in_edge(e, g);
- vis.gray_target(e, g);
- vis.black_target(e, g);
- vis.gray_source(e, g);
- vis.black_source(e, g);
- vis.finish_vertex(u, g);
- }
- Visitor vis;
- Graph g;
- typename graph_traits<Graph>::vertex_descriptor u;
- typename graph_traits<Graph>::edge_descriptor e;
- };
-
- template <class Visitors = null_visitor>
- class neighbor_bfs_visitor {
- public:
- neighbor_bfs_visitor(Visitors vis = Visitors()) : m_vis(vis) { }
-
- template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_initialize_vertex());
- }
- template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_discover_vertex());
- }
- template <class Vertex, class Graph>
- void examine_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_examine_vertex());
- }
- template <class Edge, class Graph>
- void examine_out_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_examine_edge());
- }
- template <class Edge, class Graph>
- void tree_out_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_tree_edge());
- }
- template <class Edge, class Graph>
- void non_tree_out_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_non_tree_edge());
- }
- template <class Edge, class Graph>
- void gray_target(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_gray_target());
- }
- template <class Edge, class Graph>
- void black_target(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_black_target());
- }
- template <class Edge, class Graph>
- void examine_in_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_examine_edge());
- }
- template <class Edge, class Graph>
- void tree_in_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_tree_edge());
- }
- template <class Edge, class Graph>
- void non_tree_in_edge(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_non_tree_edge());
- }
- template <class Edge, class Graph>
- void gray_source(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_gray_target());
- }
- template <class Edge, class Graph>
- void black_source(Edge e, Graph& g) {
- invoke_visitors(m_vis, e, g, on_black_target());
- }
- template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) {
- invoke_visitors(m_vis, u, g, on_finish_vertex());
- }
- protected:
- Visitors m_vis;
- };
-
- template <class Visitors>
- neighbor_bfs_visitor<Visitors>
- make_neighbor_bfs_visitor(Visitors vis) {
- return neighbor_bfs_visitor<Visitors>(vis);
- }
-
- namespace detail {
-
- template <class BidirectionalGraph, class Buffer, class BFSVisitor,
- class ColorMap>
- void neighbor_bfs_impl
- (const BidirectionalGraph& g,
- typename graph_traits<BidirectionalGraph>::vertex_descriptor s,
- Buffer& Q, BFSVisitor vis, ColorMap color)
-
- {
- function_requires< BidirectionalGraphConcept<BidirectionalGraph> >();
- typedef graph_traits<BidirectionalGraph> GTraits;
- typedef typename GTraits::vertex_descriptor Vertex;
- typedef typename GTraits::edge_descriptor Edge;
- function_requires<
- NeighborBFSVisitorConcept<BFSVisitor, BidirectionalGraph> >();
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- put(color, s, Color::gray());
- vis.discover_vertex(s, g);
- Q.push(s);
- while (! Q.empty()) {
- Vertex u = Q.top();
- Q.pop(); // pop before push to avoid problem if Q is priority_queue.
- vis.examine_vertex(u, g);
-
- typename GTraits::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
- Edge e = *ei;
- vis.examine_out_edge(e, g);
- Vertex v = target(e, g);
- ColorValue v_color = get(color, v);
- if (v_color == Color::white()) {
- vis.tree_out_edge(e, g);
- put(color, v, Color::gray());
- vis.discover_vertex(v, g);
- Q.push(v);
- } else {
- vis.non_tree_out_edge(e, g);
- if (v_color == Color::gray())
- vis.gray_target(e, g);
- else
- vis.black_target(e, g);
- }
- } // for out-edges
-
- typename GTraits::in_edge_iterator in_ei, in_ei_end;
- for (tie(in_ei, in_ei_end) = in_edges(u, g);
- in_ei != in_ei_end; ++in_ei) {
- Edge e = *in_ei;
- vis.examine_in_edge(e, g);
- Vertex v = source(e, g);
- ColorValue v_color = get(color, v);
- if (v_color == Color::white()) {
- vis.tree_in_edge(e, g);
- put(color, v, Color::gray());
- vis.discover_vertex(v, g);
- Q.push(v);
- } else {
- vis.non_tree_in_edge(e, g);
- if (v_color == Color::gray())
- vis.gray_source(e, g);
- else
- vis.black_source(e, g);
- }
- } // for in-edges
-
- put(color, u, Color::black());
- vis.finish_vertex(u, g);
- } // while
- }
-
-
- template <class VertexListGraph, class ColorMap, class BFSVisitor,
- class P, class T, class R>
- void neighbor_bfs_helper
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- ColorMap color,
- BFSVisitor vis,
- const bgl_named_params<P, T, R>& params)
- {
- typedef graph_traits<VertexListGraph> Traits;
- // Buffer default
- typedef typename Traits::vertex_descriptor Vertex;
- typedef boost::queue<Vertex> queue_t;
- queue_t Q;
- detail::wrap_ref<queue_t> Qref(Q);
- // Initialization
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename boost::graph_traits<VertexListGraph>::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i) {
- put(color, *i, Color::white());
- vis.initialize_vertex(*i, g);
- }
- neighbor_bfs_impl
- (g, s,
- choose_param(get_param(params, buffer_param_t()), Qref).ref,
- vis, color);
- }
-
- //-------------------------------------------------------------------------
- // Choose between default color and color parameters. Using
- // function dispatching so that we don't require vertex index if
- // the color default is not being used.
-
- template <class ColorMap>
- struct neighbor_bfs_dispatch {
- template <class VertexListGraph, class P, class T, class R>
- static void apply
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params,
- ColorMap color)
- {
- neighbor_bfs_helper
- (g, s, color,
- choose_param(get_param(params, graph_visitor),
- make_neighbor_bfs_visitor(null_visitor())),
- params);
- }
- };
-
- template <>
- struct neighbor_bfs_dispatch<detail::error_property_not_found> {
- template <class VertexListGraph, class P, class T, class R>
- static void apply
- (VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- std::vector<default_color_type> color_vec(num_vertices(g));
- null_visitor null_vis;
-
- neighbor_bfs_helper
- (g, s,
- make_iterator_property_map
- (color_vec.begin(),
- choose_const_pmap(get_param(params, vertex_index),
- g, vertex_index), color_vec[0]),
- choose_param(get_param(params, graph_visitor),
- make_neighbor_bfs_visitor(null_vis)),
- params);
- }
- };
-
- } // namespace detail
-
-
- // Named Parameter Variant
- template <class VertexListGraph, class P, class T, class R>
- void neighbor_breadth_first_search
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params)
- {
- // The graph is passed by *const* reference so that graph adaptors
- // (temporaries) can be passed into this function. However, the
- // graph is not really const since we may write to property maps
- // of the graph.
- VertexListGraph& ng = const_cast<VertexListGraph&>(g);
- typedef typename property_value< bgl_named_params<P,T,R>,
- vertex_color_t>::type C;
- detail::neighbor_bfs_dispatch<C>::apply(ng, s, params,
- get_param(params, vertex_color));
- }
-
-
- // This version does not initialize colors, user has to.
-
- template <class IncidenceGraph, class P, class T, class R>
- void neighbor_breadth_first_visit
- (IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor s,
- const bgl_named_params<P, T, R>& params)
- {
- typedef graph_traits<IncidenceGraph> Traits;
- // Buffer default
- typedef boost::queue<typename Traits::vertex_descriptor> queue_t;
- queue_t Q;
- detail::wrap_ref<queue_t> Qref(Q);
-
- detail::neighbor_bfs_impl
- (g, s,
- choose_param(get_param(params, buffer_param_t()), Qref).ref,
- choose_param(get_param(params, graph_visitor),
- make_neighbor_bfs_visitor(null_visitor())),
- choose_pmap(get_param(params, vertex_color), g, vertex_color)
- );
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_NEIGHBOR_BREADTH_FIRST_SEARCH_HPP
-
+++ /dev/null
-// Copyright 2004-5 The Trustees of Indiana University.
-// Copyright 2002 Brad King and Douglas Gregor
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-
-#ifndef BOOST_GRAPH_PAGE_RANK_HPP
-#define BOOST_GRAPH_PAGE_RANK_HPP
-
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/iteration_macros.hpp>
-#include <vector>
-
-namespace boost { namespace graph {
-
-struct n_iterations
-{
- explicit n_iterations(std::size_t n) : n(n) { }
-
- template<typename RankMap, typename Graph>
- bool
- operator()(const RankMap&, const Graph&)
- {
- return n-- == 0;
- }
-
- private:
- std::size_t n;
-};
-
-namespace detail {
- template<typename Graph, typename RankMap, typename RankMap2>
- void page_rank_step(const Graph& g, RankMap from_rank, RankMap2 to_rank,
- typename property_traits<RankMap>::value_type damping,
- incidence_graph_tag)
- {
- typedef typename property_traits<RankMap>::value_type rank_type;
-
- // Set new rank maps
- BGL_FORALL_VERTICES_T(v, g, Graph) put(to_rank, v, rank_type(1 - damping));
-
- BGL_FORALL_VERTICES_T(u, g, Graph) {
- rank_type u_rank_out = damping * get(from_rank, u) / out_degree(u, g);
- BGL_FORALL_ADJ_T(u, v, g, Graph)
- put(to_rank, v, get(to_rank, v) + u_rank_out);
- }
- }
-
- template<typename Graph, typename RankMap, typename RankMap2>
- void page_rank_step(const Graph& g, RankMap from_rank, RankMap2 to_rank,
- typename property_traits<RankMap>::value_type damping,
- bidirectional_graph_tag)
- {
- typedef typename property_traits<RankMap>::value_type damping_type;
- BGL_FORALL_VERTICES_T(v, g, Graph) {
- typename property_traits<RankMap>::value_type rank(0);
- BGL_FORALL_INEDGES_T(v, e, g, Graph)
- rank += get(from_rank, source(e, g)) / out_degree(source(e, g), g);
- put(to_rank, v, (damping_type(1) - damping) + damping * rank);
- }
- }
-} // end namespace detail
-
-template<typename Graph, typename RankMap, typename Done, typename RankMap2>
-void
-page_rank(const Graph& g, RankMap rank_map, Done done,
- typename property_traits<RankMap>::value_type damping,
- typename graph_traits<Graph>::vertices_size_type n,
- RankMap2 rank_map2)
-{
- typedef typename property_traits<RankMap>::value_type rank_type;
-
- rank_type initial_rank = rank_type(rank_type(1) / n);
- BGL_FORALL_VERTICES_T(v, g, Graph) put(rank_map, v, initial_rank);
-
- bool to_map_2 = true;
- while ((to_map_2 && !done(rank_map, g)) ||
- (!to_map_2 && !done(rank_map2, g))) {
- typedef typename graph_traits<Graph>::traversal_category category;
-
- if (to_map_2) {
- detail::page_rank_step(g, rank_map, rank_map2, damping, category());
- } else {
- detail::page_rank_step(g, rank_map2, rank_map, damping, category());
- }
- to_map_2 = !to_map_2;
- }
-
- if (!to_map_2) {
- BGL_FORALL_VERTICES_T(v, g, Graph) put(rank_map, v, get(rank_map2, v));
- }
-}
-
-template<typename Graph, typename RankMap, typename Done>
-void
-page_rank(const Graph& g, RankMap rank_map, Done done,
- typename property_traits<RankMap>::value_type damping,
- typename graph_traits<Graph>::vertices_size_type n)
-{
- typedef typename property_traits<RankMap>::value_type rank_type;
-
- std::vector<rank_type> ranks2(num_vertices(g));
- page_rank(g, rank_map, done, damping, n,
- make_iterator_property_map(ranks2.begin(), get(vertex_index, g)));
-}
-
-template<typename Graph, typename RankMap, typename Done>
-inline void
-page_rank(const Graph& g, RankMap rank_map, Done done,
- typename property_traits<RankMap>::value_type damping = 0.85)
-{
- page_rank(g, rank_map, done, damping, num_vertices(g));
-}
-
-template<typename Graph, typename RankMap>
-inline void
-page_rank(const Graph& g, RankMap rank_map)
-{
- page_rank(g, rank_map, n_iterations(20));
-}
-
-// TBD: this could be _much_ more efficient, using a queue to store
-// the vertices that should be reprocessed and keeping track of which
-// vertices are in the queue with a property map. Baah, this only
-// applies when we have a bidirectional graph.
-template<typename MutableGraph>
-void
-remove_dangling_links(MutableGraph& g)
-{
- typename graph_traits<MutableGraph>::vertices_size_type old_n;
- do {
- old_n = num_vertices(g);
-
- typename graph_traits<MutableGraph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; /* in loop */) {
- typename graph_traits<MutableGraph>::vertex_descriptor v = *vi++;
- if (out_degree(v, g) == 0) {
- clear_vertex(v, g);
- remove_vertex(v, g);
- }
- }
- } while (num_vertices(g) < old_n);
-}
-
-} } // end namespace boost::graph
-
-#endif // BOOST_GRAPH_PAGE_RANK_HPP
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_PLOD_GENERATOR_HPP
-#define BOOST_GRAPH_PLOD_GENERATOR_HPP
-
-#include <iterator>
-#include <utility>
-#include <boost/random/uniform_int.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <vector>
-#include <cmath>
-
-namespace boost {
-
- template<typename RandomGenerator, typename Graph>
- class plod_iterator
- {
- typedef std::vector<std::pair<std::size_t, std::size_t> > out_degrees_t;
- typedef typename graph_traits<Graph>::directed_category directed_category;
-
- public:
- typedef std::input_iterator_tag iterator_category;
- typedef std::pair<std::size_t, std::size_t> value_type;
- typedef const value_type& reference;
- typedef const value_type* pointer;
- typedef void difference_type;
-
- plod_iterator()
- : gen(0), out_degrees(), degrees_left(0), allow_self_loops(false) { }
-
- plod_iterator(RandomGenerator& gen, std::size_t n,
- double alpha, double beta, bool allow_self_loops = false)
- : gen(&gen), n(n), out_degrees(new out_degrees_t(n)),
- degrees_left(0), allow_self_loops(allow_self_loops)
- {
- using std::pow;
-
- uniform_int<std::size_t> x(0, n-1);
- for (out_degrees_t::iterator i = out_degrees->begin();
- i != out_degrees->end(); ++i) {
- std::size_t xv = x(gen);
- i->first = i - out_degrees->begin();
- i->second = (xv == 0? 0 : std::size_t(beta * pow(xv, -alpha)));
- degrees_left += i->second;
- }
-
- next(directed_category());
- }
-
- reference operator*() const { return current; }
- pointer operator->() const { return ¤t; }
-
- plod_iterator& operator++()
- {
- next(directed_category());
- return *this;
- }
-
- plod_iterator operator++(int)
- {
- plod_iterator temp(*this);
- ++(*this);
- return temp;
- }
-
- bool operator==(const plod_iterator& other) const
- {
- return degrees_left == other.degrees_left;
- }
-
- bool operator!=(const plod_iterator& other) const
- { return !(*this == other); }
-
- private:
- void next(directed_tag)
- {
- uniform_int<std::size_t> x(0, out_degrees->size()-1);
- std::size_t source;
- do {
- source = x(*gen);
- } while ((*out_degrees)[source].second == 0);
- current.first = (*out_degrees)[source].first;
- current.second = x(*gen);
- --degrees_left;
- if (--(*out_degrees)[source].second == 0) {
- (*out_degrees)[source] = out_degrees->back();
- out_degrees->pop_back();
- }
- }
-
- void next(undirected_tag)
- {
- std::size_t source, target;
- while (true) {
- /* We may get to the point where we can't actually find any
- new edges, so we just add some random edge and set the
- degrees left = 0 to signal termination. */
- if (out_degrees->size() < 2) {
- uniform_int<std::size_t> x(0, n);
- current.first = x(*gen);
- do {
- current.second = x(*gen);
- } while (current.first == current.second && !allow_self_loops);
- degrees_left = 0;
- out_degrees->clear();
- return;
- }
-
- uniform_int<std::size_t> x(0, out_degrees->size()-1);
-
- // Select source vertex
- source = x(*gen);
- if ((*out_degrees)[source].second == 0) {
- (*out_degrees)[source] = out_degrees->back();
- out_degrees->pop_back();
- continue;
- }
-
- // Select target vertex
- target = x(*gen);
- if ((*out_degrees)[target].second == 0) {
- (*out_degrees)[target] = out_degrees->back();
- out_degrees->pop_back();
- continue;
- } else if (source != target
- || (allow_self_loops && (*out_degrees)[source].second > 2)) {
- break;
- }
- }
-
- // Update degree counts
- --(*out_degrees)[source].second;
- --degrees_left;
- --(*out_degrees)[target].second;
- --degrees_left;
- current.first = (*out_degrees)[source].first;
- current.second = (*out_degrees)[target].first;
- }
-
- RandomGenerator* gen;
- std::size_t n;
- shared_ptr<out_degrees_t> out_degrees;
- std::size_t degrees_left;
- bool allow_self_loops;
- value_type current;
- };
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_PLOD_GENERATOR_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_MST_PRIM_HPP
-#define BOOST_GRAPH_MST_PRIM_HPP
-
-#include <functional>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-
-namespace boost {
-
- namespace detail {
- // this should be somewhere else in boost...
- template <class U, class V> struct _project2nd {
- V operator()(U, V v) const { return v; }
- };
- }
-
- namespace detail {
-
- // This is Prim's algorithm to calculate the Minimum Spanning Tree
- // for an undirected graph with weighted edges.
-
- template <class Graph, class P, class T, class R, class Weight>
- inline void
- prim_mst_impl(const Graph& G,
- typename graph_traits<Graph>::vertex_descriptor s,
- const bgl_named_params<P,T,R>& params,
- Weight)
- {
- typedef typename property_traits<Weight>::value_type W;
- std::less<W> compare;
- detail::_project2nd<W,W> combine;
- dijkstra_shortest_paths(G, s, params.distance_compare(compare).
- distance_combine(combine));
- }
- } // namespace detail
-
- template <class VertexListGraph, class DijkstraVisitor,
- class PredecessorMap, class DistanceMap,
- class WeightMap, class IndexMap>
- inline void
- prim_minimum_spanning_tree
- (const VertexListGraph& g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
- PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
- IndexMap index_map,
- DijkstraVisitor vis)
- {
- typedef typename property_traits<WeightMap>::value_type W;
- std::less<W> compare;
- detail::_project2nd<W,W> combine;
- dijkstra_shortest_paths(g, s, predecessor, distance, weight, index_map,
- compare, combine, (std::numeric_limits<W>::max)(), 0,
- vis);
- }
-
- template <class VertexListGraph, class PredecessorMap,
- class P, class T, class R>
- inline void prim_minimum_spanning_tree
- (const VertexListGraph& g,
- PredecessorMap p_map,
- const bgl_named_params<P,T,R>& params)
- {
- detail::prim_mst_impl
- (g,
- choose_param(get_param(params, root_vertex_t()), *vertices(g).first),
- params.predecessor_map(p_map),
- choose_const_pmap(get_param(params, edge_weight), g, edge_weight));
- }
-
- template <class VertexListGraph, class PredecessorMap>
- inline void prim_minimum_spanning_tree
- (const VertexListGraph& g, PredecessorMap p_map)
- {
- detail::prim_mst_impl
- (g, *vertices(g).first, predecessor_map(p_map).
- weight_map(get(edge_weight, g)),
- get(edge_weight, g));
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_MST_PRIM_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 2002 Marc Wintermantel (wintermantel@imes.mavt.ethz.ch)
-// ETH Zurich, Center of Structure Technologies (www.imes.ethz.ch/st)
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-
-#ifndef BOOST_GRAPH_PROFILE_HPP
-#define BOOST_GRAPH_PROFILE_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/detail/numeric_traits.hpp>
-#include <boost/graph/bandwidth.hpp>
-
-namespace boost {
-
- template <typename Graph, typename VertexIndexMap>
- typename graph_traits<Graph>::vertices_size_type
- profile(const Graph& g, VertexIndexMap index)
- {
- typename graph_traits<Graph>::vertices_size_type b = 0;
- typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i){
- b += ith_bandwidth(*i, g, index) + 1;
- }
-
- return b;
- }
-
- template <typename Graph>
- typename graph_traits<Graph>::vertices_size_type
- profile(const Graph& g)
- {
- return profile(g, get(vertex_index, g));
- }
-
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_PROFILE_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_PROPERTIES_HPP
-#define BOOST_GRAPH_PROPERTIES_HPP
-
-#include <boost/config.hpp>
-#include <cassert>
-#include <boost/pending/property.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace boost {
-
- enum default_color_type { white_color, gray_color, green_color, red_color, black_color };
-
- template <class ColorValue>
- struct color_traits {
- static default_color_type white() { return white_color; }
- static default_color_type gray() { return gray_color; }
- static default_color_type green() { return green_color; }
- static default_color_type red() { return red_color; }
- static default_color_type black() { return black_color; }
- };
-
- // These functions are now obsolete, replaced by color_traits.
- inline default_color_type white(default_color_type) { return white_color; }
- inline default_color_type gray(default_color_type) { return gray_color; }
- inline default_color_type green(default_color_type) { return green_color; }
- inline default_color_type red(default_color_type) { return red_color; }
- inline default_color_type black(default_color_type) { return black_color; }
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <>
- struct property_traits<default_color_type*> {
- typedef default_color_type value_type;
- typedef std::ptrdiff_t key_type;
- typedef default_color_type& reference;
- typedef lvalue_property_map_tag category;
- };
- // get/put already defined for T*
-#endif
-
- struct graph_property_tag { };
- struct vertex_property_tag { };
- struct edge_property_tag { };
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // See examples/edge_property.cpp for how to use this.
-#define BOOST_INSTALL_PROPERTY(KIND, NAME) \
- template <> struct property_kind<KIND##_##NAME##_t> { \
- typedef KIND##_property_tag type; \
- }
-#else
-#define BOOST_INSTALL_PROPERTY(KIND, NAME) \
- template <> struct property_kind<KIND##_##NAME##_t> { \
- typedef KIND##_property_tag type; \
- }
-#endif
-
-#define BOOST_DEF_PROPERTY(KIND, NAME) \
- enum KIND##_##NAME##_t { KIND##_##NAME }; \
- BOOST_INSTALL_PROPERTY(KIND, NAME)
-
- BOOST_DEF_PROPERTY(vertex, all);
- BOOST_DEF_PROPERTY(edge, all);
- BOOST_DEF_PROPERTY(graph, all);
- BOOST_DEF_PROPERTY(vertex, index);
- BOOST_DEF_PROPERTY(vertex, index1);
- BOOST_DEF_PROPERTY(vertex, index2);
- BOOST_DEF_PROPERTY(vertex, root);
- BOOST_DEF_PROPERTY(edge, index);
- BOOST_DEF_PROPERTY(edge, name);
- BOOST_DEF_PROPERTY(edge, weight);
- BOOST_DEF_PROPERTY(edge, weight2);
- BOOST_DEF_PROPERTY(edge, color);
- BOOST_DEF_PROPERTY(vertex, name);
- BOOST_DEF_PROPERTY(graph, name);
- BOOST_DEF_PROPERTY(vertex, distance);
- BOOST_DEF_PROPERTY(vertex, color);
- BOOST_DEF_PROPERTY(vertex, degree);
- BOOST_DEF_PROPERTY(vertex, in_degree);
- BOOST_DEF_PROPERTY(vertex, out_degree);
- BOOST_DEF_PROPERTY(vertex, current_degree);
- BOOST_DEF_PROPERTY(vertex, priority);
- BOOST_DEF_PROPERTY(vertex, discover_time);
- BOOST_DEF_PROPERTY(vertex, finish_time);
- BOOST_DEF_PROPERTY(vertex, predecessor);
- BOOST_DEF_PROPERTY(vertex, rank);
- BOOST_DEF_PROPERTY(vertex, centrality);
- BOOST_DEF_PROPERTY(edge, reverse);
- BOOST_DEF_PROPERTY(edge, capacity);
- BOOST_DEF_PROPERTY(edge, residual_capacity);
- BOOST_DEF_PROPERTY(edge, centrality);
- BOOST_DEF_PROPERTY(graph, visitor);
-
- // These tags are used for property bundles
- BOOST_DEF_PROPERTY(vertex, bundle);
- BOOST_DEF_PROPERTY(edge, bundle);
-
-#undef BOOST_DEF_PROPERTY
-
- namespace detail {
-
- struct dummy_edge_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef identity_property_map type;
- typedef identity_property_map const_type;
- };
- };
- struct dummy_vertex_property_selector {
- template <class Graph, class Property, class Tag>
- struct bind_ {
- typedef identity_property_map type;
- typedef identity_property_map const_type;
- };
- };
-
- } // namespace detail
-
- // Graph classes can either partially specialize property_map
- // or they can specialize these two selector classes.
- template <class GraphTag>
- struct edge_property_selector {
- typedef detail::dummy_edge_property_selector type;
- };
-
- template <class GraphTag>
- struct vertex_property_selector {
- typedef detail::dummy_vertex_property_selector type;
- };
-
- namespace detail {
-
- template <class Graph, class PropertyTag>
- struct edge_property_map {
- typedef typename Graph::edge_property_type Property;
- typedef typename Graph::graph_tag graph_tag;
- typedef typename edge_property_selector<graph_tag>::type Selector;
- typedef typename Selector::template bind_<Graph,Property,PropertyTag>
- Bind;
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
- template <class Graph, class PropertyTag>
- class vertex_property_map {
- typedef typename Graph::vertex_property_type Property;
- typedef typename Graph::graph_tag graph_tag;
- typedef typename vertex_property_selector<graph_tag>::type Selector;
- typedef typename Selector::template bind_<Graph,Property,PropertyTag>
- Bind;
- public:
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
-
- // This selects the kind of property map, whether is maps from
- // edges or from vertices.
- //
- // It is overly complicated because it's a workaround for
- // partial specialization.
- struct choose_vertex_property_map {
- template <class Graph, class Property>
- struct bind_ {
- typedef vertex_property_map<Graph, Property> type;
- };
- };
- struct choose_edge_property_map {
- template <class Graph, class Property>
- struct bind_ {
- typedef edge_property_map<Graph, Property> type;
- };
- };
- template <class Kind>
- struct property_map_kind_selector {
- // VC++ gets confused if this isn't defined, even though
- // this never gets used.
- typedef choose_vertex_property_map type;
- };
- template <> struct property_map_kind_selector<vertex_property_tag> {
- typedef choose_vertex_property_map type;
- };
- template <> struct property_map_kind_selector<edge_property_tag> {
- typedef choose_edge_property_map type;
- };
- } // namespace detail
-
- template <class Graph, class Property>
- struct property_map {
- private:
- typedef typename property_kind<Property>::type Kind;
- typedef typename detail::property_map_kind_selector<Kind>::type Selector;
- typedef typename Selector::template bind_<Graph, Property> Bind;
- typedef typename Bind::type Map;
- public:
- typedef typename Map::type type;
- typedef typename Map::const_type const_type;
- };
-
- // shortcut for accessing the value type of the property map
- template <class Graph, class Property>
- class property_map_value {
- typedef typename property_map<Graph, Property>::const_type PMap;
- public:
- typedef typename property_traits<PMap>::value_type type;
- };
-
- template <class Graph, class Property>
- class graph_property {
- public:
- typedef typename property_value<typename Graph::graph_property_type,
- Property>::type type;
- };
-
- template <class Graph>
- class vertex_property {
- public:
- typedef typename Graph::vertex_property_type type;
- };
- template <class Graph>
- class edge_property {
- public:
- typedef typename Graph::edge_property_type type;
- };
-
- template <typename Graph>
- class degree_property_map
- : public put_get_helper<typename graph_traits<Graph>::degree_size_type,
- degree_property_map<Graph> >
- {
- public:
- typedef typename graph_traits<Graph>::vertex_descriptor key_type;
- typedef typename graph_traits<Graph>::degree_size_type value_type;
- typedef value_type reference;
- typedef readable_property_map_tag category;
- degree_property_map(const Graph& g) : m_g(g) { }
- value_type operator[](const key_type& v) const {
- return degree(v, m_g);
- }
- private:
- const Graph& m_g;
- };
- template <typename Graph>
- inline degree_property_map<Graph>
- make_degree_map(const Graph& g) {
- return degree_property_map<Graph>(g);
- }
-
- //========================================================================
- // Iterator Property Map Generating Functions contributed by
- // Kevin Vanhorn. (see also the property map generating functions
- // in boost/property_map.hpp)
-
-#if !defined(BOOST_NO_STD_ITERATOR_TRAITS)
- // A helper function for creating a vertex property map out of a
- // random access iterator and the internal vertex index map from a
- // graph.
- template <class PropertyGraph, class RandomAccessIterator>
- inline
- iterator_property_map<
- RandomAccessIterator,
- typename property_map<PropertyGraph, vertex_index_t>::type,
- typename std::iterator_traits<RandomAccessIterator>::value_type,
- typename std::iterator_traits<RandomAccessIterator>::reference
- >
- make_iterator_vertex_map(RandomAccessIterator iter, const PropertyGraph& g)
- {
- return make_iterator_property_map(iter, get(vertex_index, g));
- }
-
- // Use this next function when vertex_descriptor is known to be an
- // integer type, with values ranging from 0 to num_vertices(g).
- //
- template <class RandomAccessIterator>
- inline
- iterator_property_map<
- RandomAccessIterator,
- identity_property_map,
- typename std::iterator_traits<RandomAccessIterator>::value_type,
- typename std::iterator_traits<RandomAccessIterator>::reference
- >
- make_iterator_vertex_map(RandomAccessIterator iter)
- {
- return make_iterator_property_map(iter, identity_property_map());
- }
-#endif
-
- template <class PropertyGraph, class RandomAccessContainer>
- inline
- iterator_property_map<
- typename RandomAccessContainer::iterator,
- typename property_map<PropertyGraph, vertex_index_t>::type,
- typename RandomAccessContainer::value_type,
- typename RandomAccessContainer::reference
- >
- make_container_vertex_map(RandomAccessContainer& c, const PropertyGraph& g)
- {
- assert(c.size() >= num_vertices(g));
- return make_iterator_vertex_map(c.begin(), g);
- }
-
- template <class RandomAccessContainer> inline
- iterator_property_map<
- typename RandomAccessContainer::iterator,
- identity_property_map,
- typename RandomAccessContainer::value_type,
- typename RandomAccessContainer::reference
- >
- make_container_vertex_map(RandomAccessContainer& c)
- {
- return make_iterator_vertex_map(c.begin());
- }
-
-#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# define BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-#endif
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template<typename Graph, typename Descriptor, typename Bundle, typename T>
- struct bundle_property_map
- : put_get_helper<T&, bundle_property_map<Graph, Descriptor, Bundle, T> >
- {
- typedef Descriptor key_type;
- typedef T value_type;
- typedef T& reference;
- typedef lvalue_property_map_tag category;
-
- bundle_property_map(Graph* g_, T Bundle::* pm_) : g(g_), pm(pm_) {}
-
- reference operator[](key_type k) const { return (*g)[k].*pm; }
- private:
- Graph* g;
- T Bundle::* pm;
- };
-
- namespace detail {
- template<typename VertexBundle, typename EdgeBundle, typename Bundle>
- struct is_vertex_bundle : is_convertible<Bundle*, VertexBundle*> {};
- }
-
- template <typename Graph, typename T, typename Bundle>
- struct property_map<Graph, T Bundle::*>
- {
- private:
- typedef graph_traits<Graph> traits;
- typedef typename Graph::vertex_bundled vertex_bundled;
- typedef typename Graph::edge_bundled edge_bundled;
- typedef typename ct_if<(detail::is_vertex_bundle<vertex_bundled, edge_bundled, Bundle>::value),
- typename traits::vertex_descriptor,
- typename traits::edge_descriptor>::type
- descriptor;
-
- public:
- typedef bundle_property_map<Graph, descriptor, Bundle, T> type;
- typedef bundle_property_map<const Graph, descriptor, Bundle, const T> const_type;
- };
-#endif
-
-} // namespace boost
-
-#endif /* BOOST_GRAPH_PROPERTIES_HPPA */
+++ /dev/null
-
-// (C) Copyright François Faure, iMAGIS-GRAVIR / UJF, 2001. Permission
-// to copy, use, modify, sell and distribute this software is granted
-// provided this copyright notice appears in all copies. This software
-// is provided "as is" without express or implied warranty, and with
-// no claim as to its suitability for any purpose.
-
-// Revision History:
-// 03 May 2001 Jeremy Siek
-// Generalized the property map iterator and moved that
-// part to boost/property_map.hpp. Also modified to
-// differentiate between const/mutable graphs and
-// added a workaround to avoid partial specialization.
-
-// 02 May 2001 François Faure
-// Initial version.
-
-#ifndef BOOST_GRAPH_PROPERTY_ITER_RANGE_HPP
-#define BOOST_GRAPH_PROPERTY_ITER_RANGE_HPP
-
-#include <boost/property_map_iterator.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/pending/ct_if.hpp>
-#include <boost/type_traits/same_traits.hpp>
-
-namespace boost {
-
-//======================================================================
-// graph property iterator range
-
- template <class Graph, class PropertyTag>
- class graph_property_iter_range {
- typedef typename property_map<Graph, PropertyTag>::type map_type;
- typedef typename property_map<Graph, PropertyTag>::const_type
- const_map_type;
- typedef typename property_kind<PropertyTag>::type Kind;
- typedef typename ct_if<is_same<Kind, vertex_property_tag>::value,
- typename graph_traits<Graph>::vertex_iterator,
- typename graph_traits<Graph>::edge_iterator>::type iter;
- public:
- typedef typename property_map_iterator_generator<map_type, iter>::type
- iterator;
- typedef typename property_map_iterator_generator<const_map_type, iter>
- ::type const_iterator;
- typedef std::pair<iterator, iterator> type;
- typedef std::pair<const_iterator, const_iterator> const_type;
- };
-
- namespace detail {
-
- template<class Graph,class Tag>
- typename graph_property_iter_range<Graph,Tag>::type
- get_property_iter_range_kind(Graph& graph, const Tag& tag,
- const vertex_property_tag& )
- {
- typedef typename graph_property_iter_range<Graph,Tag>::iterator iter;
- return std::make_pair(iter(vertices(graph).first, get(tag, graph)),
- iter(vertices(graph).second, get(tag, graph)));
- }
-
- template<class Graph,class Tag>
- typename graph_property_iter_range<Graph,Tag>::const_type
- get_property_iter_range_kind(const Graph& graph, const Tag& tag,
- const vertex_property_tag& )
- {
- typedef typename graph_property_iter_range<Graph,Tag>
- ::const_iterator iter;
- return std::make_pair(iter(vertices(graph).first, get(tag, graph)),
- iter(vertices(graph).second, get(tag, graph)));
- }
-
-
- template<class Graph,class Tag>
- typename graph_property_iter_range<Graph,Tag>::type
- get_property_iter_range_kind(Graph& graph, const Tag& tag,
- const edge_property_tag& )
- {
- typedef typename graph_property_iter_range<Graph,Tag>::iterator iter;
- return std::make_pair(iter(edges(graph).first, get(tag, graph)),
- iter(edges(graph).second, get(tag, graph)));
- }
-
- template<class Graph,class Tag>
- typename graph_property_iter_range<Graph,Tag>::const_type
- get_property_iter_range_kind(const Graph& graph, const Tag& tag,
- const edge_property_tag& )
- {
- typedef typename graph_property_iter_range<Graph,Tag>
- ::const_iterator iter;
- return std::make_pair(iter(edges(graph).first, get(tag, graph)),
- iter(edges(graph).second, get(tag, graph)));
- }
-
- } // namespace detail
-
- //======================================================================
- // get an iterator range of properties
-
- template<class Graph, class Tag>
- typename graph_property_iter_range<Graph, Tag>::type
- get_property_iter_range(Graph& graph, const Tag& tag)
- {
- typedef typename property_kind<Tag>::type Kind;
- return detail::get_property_iter_range_kind(graph, tag, Kind());
- }
-
- template<class Graph, class Tag>
- typename graph_property_iter_range<Graph, Tag>::const_type
- get_property_iter_range(const Graph& graph, const Tag& tag)
- {
- typedef typename property_kind<Tag>::type Kind;
- return detail::get_property_iter_range_kind(graph, tag, Kind());
- }
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_PROPERTY_ITER_RANGE_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2000 University of Notre Dame.
-// Authors: Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee
-//
-// Distributed under the 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_PUSH_RELABEL_MAX_FLOW_HPP
-#define BOOST_PUSH_RELABEL_MAX_FLOW_HPP
-
-#include <boost/config.hpp>
-#include <cassert>
-#include <vector>
-#include <list>
-#include <iosfwd>
-#include <algorithm> // for std::min and std::max
-
-#include <boost/pending/queue.hpp>
-#include <boost/limits.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-namespace boost {
-
- namespace detail {
-
- // This implementation is based on Goldberg's
- // "On Implementing Push-Relabel Method for the Maximum Flow Problem"
- // by B.V. Cherkassky and A.V. Goldberg, IPCO '95, pp. 157--171
- // and on the h_prf.c and hi_pr.c code written by the above authors.
-
- // This implements the highest-label version of the push-relabel method
- // with the global relabeling and gap relabeling heuristics.
-
- // The terms "rank", "distance", "height" are synonyms in
- // Goldberg's implementation, paper and in the CLR. A "layer" is a
- // group of vertices with the same distance. The vertices in each
- // layer are categorized as active or inactive. An active vertex
- // has positive excess flow and its distance is less than n (it is
- // not blocked).
-
- template <class Vertex>
- struct preflow_layer {
- std::list<Vertex> active_vertices;
- std::list<Vertex> inactive_vertices;
- };
-
- template <class Graph,
- class EdgeCapacityMap, // integer value type
- class ResidualCapacityEdgeMap,
- class ReverseEdgeMap,
- class VertexIndexMap, // vertex_descriptor -> integer
- class FlowValue>
- class push_relabel
- {
- public:
- typedef graph_traits<Graph> Traits;
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
- typedef typename Traits::vertex_iterator vertex_iterator;
- typedef typename Traits::out_edge_iterator out_edge_iterator;
- typedef typename Traits::vertices_size_type vertices_size_type;
- typedef typename Traits::edges_size_type edges_size_type;
-
- typedef preflow_layer<vertex_descriptor> Layer;
- typedef std::vector< Layer > LayerArray;
- typedef typename LayerArray::iterator layer_iterator;
- typedef typename LayerArray::size_type distance_size_type;
-
- typedef color_traits<default_color_type> ColorTraits;
-
- //=======================================================================
- // Some helper predicates
-
- inline bool is_admissible(vertex_descriptor u, vertex_descriptor v) {
- return distance[u] == distance[v] + 1;
- }
- inline bool is_residual_edge(edge_descriptor a) {
- return 0 < residual_capacity[a];
- }
- inline bool is_saturated(edge_descriptor a) {
- return residual_capacity[a] == 0;
- }
-
- //=======================================================================
- // Layer List Management Functions
-
- typedef typename std::list<vertex_descriptor>::iterator list_iterator;
-
- void add_to_active_list(vertex_descriptor u, Layer& layer) {
- BOOST_USING_STD_MIN();
- BOOST_USING_STD_MAX();
- layer.active_vertices.push_front(u);
- max_active = max BOOST_PREVENT_MACRO_SUBSTITUTION(distance[u], max_active);
- min_active = min BOOST_PREVENT_MACRO_SUBSTITUTION(distance[u], min_active);
- layer_list_ptr[u] = layer.active_vertices.begin();
- }
- void remove_from_active_list(vertex_descriptor u) {
- layers[distance[u]].active_vertices.erase(layer_list_ptr[u]);
- }
-
- void add_to_inactive_list(vertex_descriptor u, Layer& layer) {
- layer.inactive_vertices.push_front(u);
- layer_list_ptr[u] = layer.inactive_vertices.begin();
- }
- void remove_from_inactive_list(vertex_descriptor u) {
- layers[distance[u]].inactive_vertices.erase(layer_list_ptr[u]);
- }
-
- //=======================================================================
- // initialization
- push_relabel(Graph& g_,
- EdgeCapacityMap cap,
- ResidualCapacityEdgeMap res,
- ReverseEdgeMap rev,
- vertex_descriptor src_,
- vertex_descriptor sink_,
- VertexIndexMap idx)
- : g(g_), n(num_vertices(g_)), capacity(cap), src(src_), sink(sink_),
- index(idx),
- excess_flow(num_vertices(g_)),
- current(num_vertices(g_), out_edges(*vertices(g_).first, g_).second),
- distance(num_vertices(g_)),
- color(num_vertices(g_)),
- reverse_edge(rev),
- residual_capacity(res),
- layers(num_vertices(g_)),
- layer_list_ptr(num_vertices(g_),
- layers.front().inactive_vertices.end()),
- push_count(0), update_count(0), relabel_count(0),
- gap_count(0), gap_node_count(0),
- work_since_last_update(0)
- {
- vertex_iterator u_iter, u_end;
- // Don't count the reverse edges
- edges_size_type m = num_edges(g) / 2;
- nm = alpha() * n + m;
-
- // Initialize flow to zero which means initializing
- // the residual capacity to equal the capacity.
- out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei) {
- residual_capacity[*ei] = capacity[*ei];
- }
-
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- vertex_descriptor u = *u_iter;
- excess_flow[u] = 0;
- current[u] = out_edges(u, g).first;
- }
-
- bool overflow_detected = false;
- FlowValue test_excess = 0;
-
- out_edge_iterator a_iter, a_end;
- for (tie(a_iter, a_end) = out_edges(src, g); a_iter != a_end; ++a_iter)
- if (target(*a_iter, g) != src)
- test_excess += residual_capacity[*a_iter];
- if (test_excess > (std::numeric_limits<FlowValue>::max)())
- overflow_detected = true;
-
- if (overflow_detected)
- excess_flow[src] = (std::numeric_limits<FlowValue>::max)();
- else {
- excess_flow[src] = 0;
- for (tie(a_iter, a_end) = out_edges(src, g);
- a_iter != a_end; ++a_iter) {
- edge_descriptor a = *a_iter;
- if (target(a, g) != src) {
- ++push_count;
- FlowValue delta = residual_capacity[a];
- residual_capacity[a] -= delta;
- residual_capacity[reverse_edge[a]] += delta;
- excess_flow[target(a, g)] += delta;
- }
- }
- }
- max_distance = num_vertices(g) - 1;
- max_active = 0;
- min_active = n;
-
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- vertex_descriptor u = *u_iter;
- if (u == sink) {
- distance[u] = 0;
- continue;
- } else if (u == src && !overflow_detected)
- distance[u] = n;
- else
- distance[u] = 1;
-
- if (excess_flow[u] > 0)
- add_to_active_list(u, layers[1]);
- else if (distance[u] < n)
- add_to_inactive_list(u, layers[1]);
- }
-
- } // push_relabel constructor
-
- //=======================================================================
- // This is a breadth-first search over the residual graph
- // (well, actually the reverse of the residual graph).
- // Would be cool to have a graph view adaptor for hiding certain
- // edges, like the saturated (non-residual) edges in this case.
- // Goldberg's implementation abused "distance" for the coloring.
- void global_distance_update()
- {
- BOOST_USING_STD_MAX();
- ++update_count;
- vertex_iterator u_iter, u_end;
- for (tie(u_iter,u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- color[*u_iter] = ColorTraits::white();
- distance[*u_iter] = n;
- }
- color[sink] = ColorTraits::gray();
- distance[sink] = 0;
-
- for (distance_size_type l = 0; l <= max_distance; ++l) {
- layers[l].active_vertices.clear();
- layers[l].inactive_vertices.clear();
- }
-
- max_distance = max_active = 0;
- min_active = n;
-
- Q.push(sink);
- while (! Q.empty()) {
- vertex_descriptor u = Q.top();
- Q.pop();
- distance_size_type d_v = distance[u] + 1;
-
- out_edge_iterator ai, a_end;
- for (tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai) {
- edge_descriptor a = *ai;
- vertex_descriptor v = target(a, g);
- if (color[v] == ColorTraits::white()
- && is_residual_edge(reverse_edge[a])) {
- distance[v] = d_v;
- color[v] = ColorTraits::gray();
- current[v] = out_edges(v, g).first;
- max_distance = max BOOST_PREVENT_MACRO_SUBSTITUTION(d_v, max_distance);
-
- if (excess_flow[v] > 0)
- add_to_active_list(v, layers[d_v]);
- else
- add_to_inactive_list(v, layers[d_v]);
-
- Q.push(v);
- }
- }
- }
- } // global_distance_update()
-
- //=======================================================================
- // This function is called "push" in Goldberg's h_prf implementation,
- // but it is called "discharge" in the paper and in hi_pr.c.
- void discharge(vertex_descriptor u)
- {
- assert(excess_flow[u] > 0);
- while (1) {
- out_edge_iterator ai, ai_end;
- for (ai = current[u], ai_end = out_edges(u, g).second;
- ai != ai_end; ++ai) {
- edge_descriptor a = *ai;
- if (is_residual_edge(a)) {
- vertex_descriptor v = target(a, g);
- if (is_admissible(u, v)) {
- ++push_count;
- if (v != sink && excess_flow[v] == 0) {
- remove_from_inactive_list(v);
- add_to_active_list(v, layers[distance[v]]);
- }
- push_flow(a);
- if (excess_flow[u] == 0)
- break;
- }
- }
- } // for out_edges of i starting from current
-
- Layer& layer = layers[distance[u]];
- distance_size_type du = distance[u];
-
- if (ai == ai_end) { // i must be relabeled
- relabel_distance(u);
- if (layer.active_vertices.empty()
- && layer.inactive_vertices.empty())
- gap(du);
- if (distance[u] == n)
- break;
- } else { // i is no longer active
- current[u] = ai;
- add_to_inactive_list(u, layer);
- break;
- }
- } // while (1)
- } // discharge()
-
- //=======================================================================
- // This corresponds to the "push" update operation of the paper,
- // not the "push" function in Goldberg's h_prf.c implementation.
- // The idea is to push the excess flow from from vertex u to v.
- void push_flow(edge_descriptor u_v)
- {
- vertex_descriptor
- u = source(u_v, g),
- v = target(u_v, g);
-
- BOOST_USING_STD_MIN();
- FlowValue flow_delta
- = min BOOST_PREVENT_MACRO_SUBSTITUTION(excess_flow[u], residual_capacity[u_v]);
-
- residual_capacity[u_v] -= flow_delta;
- residual_capacity[reverse_edge[u_v]] += flow_delta;
-
- excess_flow[u] -= flow_delta;
- excess_flow[v] += flow_delta;
- } // push_flow()
-
- //=======================================================================
- // The main purpose of this routine is to set distance[v]
- // to the smallest value allowed by the valid labeling constraints,
- // which are:
- // distance[t] = 0
- // distance[u] <= distance[v] + 1 for every residual edge (u,v)
- //
- distance_size_type relabel_distance(vertex_descriptor u)
- {
- BOOST_USING_STD_MAX();
- ++relabel_count;
- work_since_last_update += beta();
-
- distance_size_type min_distance = num_vertices(g);
- distance[u] = min_distance;
-
- // Examine the residual out-edges of vertex i, choosing the
- // edge whose target vertex has the minimal distance.
- out_edge_iterator ai, a_end, min_edge_iter;
- for (tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai) {
- ++work_since_last_update;
- edge_descriptor a = *ai;
- vertex_descriptor v = target(a, g);
- if (is_residual_edge(a) && distance[v] < min_distance) {
- min_distance = distance[v];
- min_edge_iter = ai;
- }
- }
- ++min_distance;
- if (min_distance < n) {
- distance[u] = min_distance; // this is the main action
- current[u] = min_edge_iter;
- max_distance = max BOOST_PREVENT_MACRO_SUBSTITUTION(min_distance, max_distance);
- }
- return min_distance;
- } // relabel_distance()
-
- //=======================================================================
- // cleanup beyond the gap
- void gap(distance_size_type empty_distance)
- {
- ++gap_count;
-
- distance_size_type r; // distance of layer before the current layer
- r = empty_distance - 1;
-
- // Set the distance for the vertices beyond the gap to "infinity".
- for (layer_iterator l = layers.begin() + empty_distance + 1;
- l < layers.begin() + max_distance; ++l) {
- list_iterator i;
- for (i = l->inactive_vertices.begin();
- i != l->inactive_vertices.end(); ++i) {
- distance[*i] = n;
- ++gap_node_count;
- }
- l->inactive_vertices.clear();
- }
- max_distance = r;
- max_active = r;
- }
-
- //=======================================================================
- // This is the core part of the algorithm, "phase one".
- FlowValue maximum_preflow()
- {
- work_since_last_update = 0;
-
- while (max_active >= min_active) { // "main" loop
-
- Layer& layer = layers[max_active];
- list_iterator u_iter = layer.active_vertices.begin();
-
- if (u_iter == layer.active_vertices.end())
- --max_active;
- else {
- vertex_descriptor u = *u_iter;
- remove_from_active_list(u);
-
- discharge(u);
-
- if (work_since_last_update * global_update_frequency() > nm) {
- global_distance_update();
- work_since_last_update = 0;
- }
- }
- } // while (max_active >= min_active)
-
- return excess_flow[sink];
- } // maximum_preflow()
-
- //=======================================================================
- // remove excess flow, the "second phase"
- // This does a DFS on the reverse flow graph of nodes with excess flow.
- // If a cycle is found, cancel it.
- // Return the nodes with excess flow in topological order.
- //
- // Unlike the prefl_to_flow() implementation, we use
- // "color" instead of "distance" for the DFS labels
- // "parent" instead of nl_prev for the DFS tree
- // "topo_next" instead of nl_next for the topological ordering
- void convert_preflow_to_flow()
- {
- vertex_iterator u_iter, u_end;
- out_edge_iterator ai, a_end;
-
- vertex_descriptor r, restart, u;
-
- std::vector<vertex_descriptor> parent(n);
- std::vector<vertex_descriptor> topo_next(n);
-
- vertex_descriptor tos(parent[0]),
- bos(parent[0]); // bogus initialization, just to avoid warning
- bool bos_null = true;
-
- // handle self-loops
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ai, a_end) = out_edges(*u_iter, g); ai != a_end; ++ai)
- if (target(*ai, g) == *u_iter)
- residual_capacity[*ai] = capacity[*ai];
-
- // initialize
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- u = *u_iter;
- color[u] = ColorTraits::white();
- parent[u] = u;
- current[u] = out_edges(u, g).first;
- }
- // eliminate flow cycles and topologically order the vertices
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- u = *u_iter;
- if (color[u] == ColorTraits::white()
- && excess_flow[u] > 0
- && u != src && u != sink ) {
- r = u;
- color[r] = ColorTraits::gray();
- while (1) {
- for (; current[u] != out_edges(u, g).second; ++current[u]) {
- edge_descriptor a = *current[u];
- if (capacity[a] == 0 && is_residual_edge(a)) {
- vertex_descriptor v = target(a, g);
- if (color[v] == ColorTraits::white()) {
- color[v] = ColorTraits::gray();
- parent[v] = u;
- u = v;
- break;
- } else if (color[v] == ColorTraits::gray()) {
- // find minimum flow on the cycle
- FlowValue delta = residual_capacity[a];
- while (1) {
- BOOST_USING_STD_MIN();
- delta = min BOOST_PREVENT_MACRO_SUBSTITUTION(delta, residual_capacity[*current[v]]);
- if (v == u)
- break;
- else
- v = target(*current[v], g);
- }
- // remove delta flow units
- v = u;
- while (1) {
- a = *current[v];
- residual_capacity[a] -= delta;
- residual_capacity[reverse_edge[a]] += delta;
- v = target(a, g);
- if (v == u)
- break;
- }
-
- // back-out of DFS to the first saturated edge
- restart = u;
- for (v = target(*current[u], g); v != u; v = target(a, g)){
- a = *current[v];
- if (color[v] == ColorTraits::white()
- || is_saturated(a)) {
- color[target(*current[v], g)] = ColorTraits::white();
- if (color[v] != ColorTraits::white())
- restart = v;
- }
- }
- if (restart != u) {
- u = restart;
- ++current[u];
- break;
- }
- } // else if (color[v] == ColorTraits::gray())
- } // if (capacity[a] == 0 ...
- } // for out_edges(u, g) (though "u" changes during loop)
-
- if (current[u] == out_edges(u, g).second) {
- // scan of i is complete
- color[u] = ColorTraits::black();
- if (u != src) {
- if (bos_null) {
- bos = u;
- bos_null = false;
- tos = u;
- } else {
- topo_next[u] = tos;
- tos = u;
- }
- }
- if (u != r) {
- u = parent[u];
- ++current[u];
- } else
- break;
- }
- } // while (1)
- } // if (color[u] == white && excess_flow[u] > 0 & ...)
- } // for all vertices in g
-
- // return excess flows
- // note that the sink is not on the stack
- if (! bos_null) {
- for (u = tos; u != bos; u = topo_next[u]) {
- ai = out_edges(u, g).first;
- while (excess_flow[u] > 0 && ai != out_edges(u, g).second) {
- if (capacity[*ai] == 0 && is_residual_edge(*ai))
- push_flow(*ai);
- ++ai;
- }
- }
- // do the bottom
- u = bos;
- ai = out_edges(u, g).first;
- while (excess_flow[u] > 0) {
- if (capacity[*ai] == 0 && is_residual_edge(*ai))
- push_flow(*ai);
- ++ai;
- }
- }
-
- } // convert_preflow_to_flow()
-
- //=======================================================================
- inline bool is_flow()
- {
- vertex_iterator u_iter, u_end;
- out_edge_iterator ai, a_end;
-
- // check edge flow values
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- for (tie(ai, a_end) = out_edges(*u_iter, g); ai != a_end; ++ai) {
- edge_descriptor a = *ai;
- if (capacity[a] > 0)
- if ((residual_capacity[a] + residual_capacity[reverse_edge[a]]
- != capacity[a] + capacity[reverse_edge[a]])
- || (residual_capacity[a] < 0)
- || (residual_capacity[reverse_edge[a]] < 0))
- return false;
- }
- }
-
- // check conservation
- FlowValue sum;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- vertex_descriptor u = *u_iter;
- if (u != src && u != sink) {
- if (excess_flow[u] != 0)
- return false;
- sum = 0;
- for (tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai)
- if (capacity[*ai] > 0)
- sum -= capacity[*ai] - residual_capacity[*ai];
- else
- sum += residual_capacity[*ai];
-
- if (excess_flow[u] != sum)
- return false;
- }
- }
-
- return true;
- } // is_flow()
-
- bool is_optimal() {
- // check if mincut is saturated...
- global_distance_update();
- return distance[src] >= n;
- }
-
- void print_statistics(std::ostream& os) const {
- os << "pushes: " << push_count << std::endl
- << "relabels: " << relabel_count << std::endl
- << "updates: " << update_count << std::endl
- << "gaps: " << gap_count << std::endl
- << "gap nodes: " << gap_node_count << std::endl
- << std::endl;
- }
-
- void print_flow_values(std::ostream& os) const {
- os << "flow values" << std::endl;
- vertex_iterator u_iter, u_end;
- out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
- if (capacity[*ei] > 0)
- os << *u_iter << " " << target(*ei, g) << " "
- << (capacity[*ei] - residual_capacity[*ei]) << std::endl;
- os << std::endl;
- }
-
- //=======================================================================
-
- Graph& g;
- vertices_size_type n;
- vertices_size_type nm;
- EdgeCapacityMap capacity;
- vertex_descriptor src;
- vertex_descriptor sink;
- VertexIndexMap index;
-
- // will need to use random_access_property_map with these
- std::vector< FlowValue > excess_flow;
- std::vector< out_edge_iterator > current;
- std::vector< distance_size_type > distance;
- std::vector< default_color_type > color;
-
- // Edge Property Maps that must be interior to the graph
- ReverseEdgeMap reverse_edge;
- ResidualCapacityEdgeMap residual_capacity;
-
- LayerArray layers;
- std::vector< list_iterator > layer_list_ptr;
- distance_size_type max_distance; // maximal distance
- distance_size_type max_active; // maximal distance with active node
- distance_size_type min_active; // minimal distance with active node
- boost::queue<vertex_descriptor> Q;
-
- // Statistics counters
- long push_count;
- long update_count;
- long relabel_count;
- long gap_count;
- long gap_node_count;
-
- inline double global_update_frequency() { return 0.5; }
- inline vertices_size_type alpha() { return 6; }
- inline long beta() { return 12; }
-
- long work_since_last_update;
- };
-
- } // namespace detail
-
- template <class Graph,
- class CapacityEdgeMap, class ResidualCapacityEdgeMap,
- class ReverseEdgeMap, class VertexIndexMap>
- typename property_traits<CapacityEdgeMap>::value_type
- push_relabel_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- CapacityEdgeMap cap, ResidualCapacityEdgeMap res,
- ReverseEdgeMap rev, VertexIndexMap index_map)
- {
- typedef typename property_traits<CapacityEdgeMap>::value_type FlowValue;
-
- detail::push_relabel<Graph, CapacityEdgeMap, ResidualCapacityEdgeMap,
- ReverseEdgeMap, VertexIndexMap, FlowValue>
- algo(g, cap, res, rev, src, sink, index_map);
-
- FlowValue flow = algo.maximum_preflow();
-
- algo.convert_preflow_to_flow();
-
- assert(algo.is_flow());
- assert(algo.is_optimal());
-
- return flow;
- } // push_relabel_max_flow()
-
- template <class Graph, class P, class T, class R>
- typename detail::edge_capacity_value<Graph, P, T, R>::type
- push_relabel_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params)
- {
- return push_relabel_max_flow
- (g, src, sink,
- choose_const_pmap(get_param(params, edge_capacity), g, edge_capacity),
- choose_pmap(get_param(params, edge_residual_capacity),
- g, edge_residual_capacity),
- choose_const_pmap(get_param(params, edge_reverse), g, edge_reverse),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index)
- );
- }
-
- template <class Graph>
- typename property_traits<
- typename property_map<Graph, edge_capacity_t>::const_type
- >::value_type
- push_relabel_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink)
- {
- bgl_named_params<int, buffer_param_t> params(0); // bogus empty param
- return push_relabel_max_flow(g, src, sink, params);
- }
-
-} // namespace boost
-
-#endif // BOOST_PUSH_RELABEL_MAX_FLOW_HPP
-
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Copyright (C) Vladimir Prus 2003
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_RANDOM_HPP
-#define BOOST_GRAPH_RANDOM_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/random/uniform_int.hpp>
-#include <boost/random/variate_generator.hpp>
-
-#include <boost/pending/property.hpp>
-#include <boost/graph/properties.hpp>
-
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/copy.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-#include <iostream>
-
-namespace boost {
-
- // grab a random vertex from the graph's vertex set
- template <class Graph, class RandomNumGen>
- typename graph_traits<Graph>::vertex_descriptor
- random_vertex(Graph& g, RandomNumGen& gen)
- {
- if (num_vertices(g) > 1) {
- uniform_int<> distrib(0, num_vertices(g)-1);
- variate_generator<RandomNumGen&, uniform_int<> > rand_gen(gen, distrib);
- std::size_t n = rand_gen();
- typename graph_traits<Graph>::vertex_iterator
- i = vertices(g).first;
- while (n-- > 0) ++i; // std::advance not VC++ portable
- return *i;
- } else
- return *vertices(g).first;
- }
-
- template <class Graph, class RandomNumGen>
- typename graph_traits<Graph>::edge_descriptor
- random_edge(Graph& g, RandomNumGen& gen) {
- if (num_edges(g) > 1) {
- uniform_int<> distrib(0, num_edges(g)-1);
- variate_generator<RandomNumGen&, uniform_int<> > rand_gen(gen, distrib);
- typename graph_traits<Graph>::edges_size_type
- n = rand_gen();
- typename graph_traits<Graph>::edge_iterator
- i = edges(g).first;
- while (n-- > 0) ++i; // std::advance not VC++ portable
- return *i;
- } else
- return *edges(g).first;
- }
-
- namespace detail {
- class dummy_property_copier {
- public:
- template<class V1, class V2>
- void operator()(const V1&, const V2&) const {}
- };
- }
-
- template <typename MutableGraph, class RandNumGen>
- void generate_random_graph1
- (MutableGraph& g,
- typename graph_traits<MutableGraph>::vertices_size_type V,
- typename graph_traits<MutableGraph>::vertices_size_type E,
- RandNumGen& gen,
- bool allow_parallel = true,
- bool self_edges = false)
- {
- typedef graph_traits<MutableGraph> Traits;
- typedef typename Traits::vertices_size_type v_size_t;
- typedef typename Traits::edges_size_type e_size_t;
- typedef typename Traits::vertex_descriptor vertex_descriptor;
-
- // When parallel edges are not allowed, we create a new graph which
- // does not allow parallel edges, construct it and copy back.
- // This is not efficient if 'g' already disallow parallel edges,
- // but that's task for later.
- if (!allow_parallel) {
-
- typedef typename boost::graph_traits<MutableGraph>::directed_category dir;
- typedef typename mpl::if_<is_convertible<dir, directed_tag>,
- directedS, undirectedS>::type select;
- adjacency_list<setS, vecS, select> g2;
- generate_random_graph1(g2, V, E, gen, true, self_edges);
-
- copy_graph(g2, g, vertex_copy(detail::dummy_property_copier()).
- edge_copy(detail::dummy_property_copier()));
-
- } else {
-
- for (v_size_t i = 0; i < V; ++i)
- add_vertex(g);
-
- for (e_size_t j = 0; j < E; ++j) {
- vertex_descriptor a = random_vertex(g, gen), b;
- do {
- b = random_vertex(g, gen);
- } while (self_edges == false && a == b);
- add_edge(a, b, g);
- }
- }
- }
-
- template <typename MutableGraph, class RandNumGen>
- void generate_random_graph
- (MutableGraph& g,
- typename graph_traits<MutableGraph>::vertices_size_type V,
- typename graph_traits<MutableGraph>::vertices_size_type E,
- RandNumGen& gen,
- bool allow_parallel = true,
- bool self_edges = false)
- {
- generate_random_graph1(g, V, E, gen, allow_parallel, self_edges);
- }
-
- template <typename MutableGraph, typename RandNumGen,
- typename VertexOutputIterator, typename EdgeOutputIterator>
- void generate_random_graph
- (MutableGraph& g,
- typename graph_traits<MutableGraph>::vertices_size_type V,
- typename graph_traits<MutableGraph>::vertices_size_type E,
- RandNumGen& gen,
- VertexOutputIterator vertex_out,
- EdgeOutputIterator edge_out,
- bool self_edges = false)
- {
- typedef graph_traits<MutableGraph> Traits;
- typedef typename Traits::vertices_size_type v_size_t;
- typedef typename Traits::edges_size_type e_size_t;
- typedef typename Traits::vertex_descriptor vertex_t;
- typedef typename Traits::edge_descriptor edge_t;
-
- for (v_size_t i = 0; i < V; ++i)
- *vertex_out++ = add_vertex(g);
-
- for (e_size_t j = 0; j < E; ++j) {
- vertex_t a = random_vertex(g, gen), b;
- do {
- b = random_vertex(g, gen);
- } while (self_edges == false && a == b);
- edge_t e; bool inserted;
- tie(e, inserted) = add_edge(a, b, g);
- if (inserted)
- *edge_out++ = std::make_pair(source(e, g), target(e, g));
- }
- }
-
- namespace detail {
-
- template<class Property, class G, class RandomGenerator>
- void randomize_property(G& g, RandomGenerator& rg,
- Property, vertex_property_tag)
- {
- typename property_map<G, Property>::type pm = get(Property(), g);
- typename graph_traits<G>::vertex_iterator vi, ve;
- for (tie(vi, ve) = vertices(g); vi != ve; ++vi) {
- pm[*vi] = rg();
- }
- }
-
- template<class Property, class G, class RandomGenerator>
- void randomize_property(G& g, RandomGenerator& rg,
- Property, edge_property_tag)
- {
- typename property_map<G, Property>::type pm = get(Property(), g);
- typename graph_traits<G>::edge_iterator ei, ee;
- for (tie(ei, ee) = edges(g); ei != ee; ++ei) {
- pm[*ei] = rg();
- }
- }
- }
-
- template<class Property, class G, class RandomGenerator>
- void randomize_property(G& g, RandomGenerator& rg)
- {
- detail::randomize_property
- (g, rg, Property(), typename property_kind<Property>::type());
- }
-
-
-
-
-}
-
-
-#endif
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_RANDOM_LAYOUT_HPP
-#define BOOST_GRAPH_RANDOM_LAYOUT_HPP
-
-#include <boost/graph/graph_traits.hpp>
-#include <boost/random/uniform_int.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/uniform_real.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/mpl/if.hpp>
-
-namespace boost {
-
-template<typename Graph, typename PositionMap, typename Dimension,
- typename RandomNumberGenerator>
-void
-random_graph_layout(const Graph& g, PositionMap position_map,
- Dimension minX, Dimension maxX,
- Dimension minY, Dimension maxY,
- RandomNumberGenerator& gen)
-{
- typedef typename mpl::if_<is_integral<Dimension>,
- uniform_int<Dimension>,
- uniform_real<Dimension> >::type distrib_t;
- typedef typename mpl::if_<is_integral<Dimension>,
- RandomNumberGenerator&,
- uniform_01<RandomNumberGenerator, Dimension> >
- ::type gen_t;
-
- gen_t my_gen(gen);
- distrib_t x(minX, maxX);
- distrib_t y(minY, maxY);
- typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for(tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
- position_map[*vi].x = x(my_gen);
- position_map[*vi].y = y(my_gen);
- }
-}
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_RANDOM_LAYOUT_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//=======================================================================
-
-/*
- Reads maximal flow problem in extended DIMACS format.
-
- Reads from stdin.
-
- This works, but could use some polishing.
-*/
-
-/* ----------------------------------------------------------------- */
-
-#include <vector>
-#include <stdio.h>
-
-namespace boost {
-
-template <class Graph, class CapacityMap, class ReverseEdgeMap>
-int read_dimacs_max_flow(Graph& g,
- CapacityMap capacity,
- ReverseEdgeMap reverse_edge,
- typename graph_traits<Graph>::vertex_descriptor& src,
- typename graph_traits<Graph>::vertex_descriptor& sink)
-{
- // const int MAXLINE = 100; /* max line length in the input file */
- const int ARC_FIELDS = 3; /* no of fields in arc line */
- const int NODE_FIELDS = 2; /* no of fields in node line */
- const int P_FIELDS = 3; /* no of fields in problem line */
- const char* PROBLEM_TYPE = "max"; /* name of problem type*/
-
- typedef typename graph_traits<Graph>::vertices_size_type vertices_size_type;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
-
- std::vector<vertex_descriptor> verts;
-
- long m, n, /* number of edges and nodes */
- i, head, tail, cap;
-
- long no_lines=0, /* no of current input line */
- no_plines=0, /* no of problem-lines */
- no_nslines=0, /* no of node-source-lines */
- no_nklines=0, /* no of node-source-lines */
- no_alines=0; /* no of arc-lines */
-
- std::string in_line; /* for reading input line */
- char pr_type[3]; /* for reading type of the problem */
- char nd; /* source (s) or sink (t) */
-
- int k, /* temporary */
- err_no; /* no of detected error */
-
- /* -------------- error numbers & error messages ---------------- */
- const int EN1 = 0;
- const int EN2 = 1;
- const int EN3 = 2;
- const int EN4 = 3;
- // const int EN6 = 4;
- // const int EN10 = 5;
- // const int EN7 = 6;
- const int EN8 = 7;
- const int EN9 = 8;
- const int EN11 = 9;
- const int EN12 = 10;
- // const int EN13 = 11;
- const int EN14 = 12;
- const int EN16 = 13;
- const int EN15 = 14;
- const int EN17 = 15;
- const int EN18 = 16;
- const int EN21 = 17;
- const int EN19 = 18;
- const int EN20 = 19;
- const int EN22 = 20;
-
- static char *err_message[] =
- {
- /* 0*/ "more than one problem line.",
- /* 1*/ "wrong number of parameters in the problem line.",
- /* 2*/ "it is not a Max Flow problem line.",
- /* 3*/ "bad value of a parameter in the problem line.",
- /* 4*/ "can't obtain enough memory to solve this problem.",
- /* 5*/ "more than one line with the problem name.",
- /* 6*/ "can't read problem name.",
- /* 7*/ "problem description must be before node description.",
- /* 8*/ "this parser doesn't support multiply sources and sinks.",
- /* 9*/ "wrong number of parameters in the node line.",
- /*10*/ "wrong value of parameters in the node line.",
- /*11*/ " ",
- /*12*/ "source and sink descriptions must be before arc descriptions.",
- /*13*/ "too many arcs in the input.",
- /*14*/ "wrong number of parameters in the arc line.",
- /*15*/ "wrong value of parameters in the arc line.",
- /*16*/ "unknown line type in the input.",
- /*17*/ "reading error.",
- /*18*/ "not enough arcs in the input.",
- /*19*/ "source or sink doesn't have incident arcs.",
- /*20*/ "can't read anything from the input file."
- };
- /* --------------------------------------------------------------- */
-
- /* The main loop:
- - reads the line of the input,
- - analyses its type,
- - checks correctness of parameters,
- - puts data to the arrays,
- - does service functions
- */
-
- while (std::getline(std::cin, in_line)) {
- ++no_lines;
-
- switch (in_line[0]) {
- case 'c': /* skip lines with comments */
- case '\n': /* skip empty lines */
- case '\0': /* skip empty lines at the end of file */
- break;
-
- case 'p': /* problem description */
- if ( no_plines > 0 )
- /* more than one problem line */
- { err_no = EN1 ; goto error; }
-
- no_plines = 1;
-
- if (
- /* reading problem line: type of problem, no of nodes, no of arcs */
- sscanf ( in_line.c_str(), "%*c %3s %ld %ld", pr_type, &n, &m )
- != P_FIELDS
- )
- /*wrong number of parameters in the problem line*/
- { err_no = EN2; goto error; }
-
- if ( strcmp ( pr_type, PROBLEM_TYPE ) )
- /*wrong problem type*/
- { err_no = EN3; goto error; }
-
- if ( n <= 0 || m <= 0 )
- /*wrong value of no of arcs or nodes*/
- { err_no = EN4; goto error; }
-
- {
- for (long vi = 0; vi < n; ++vi)
- verts.push_back(add_vertex(g));
- }
- break;
-
- case 'n': /* source(s) description */
- if ( no_plines == 0 )
- /* there was not problem line above */
- { err_no = EN8; goto error; }
-
- /* reading source or sink */
- k = sscanf ( in_line.c_str(),"%*c %ld %c", &i, &nd );
- --i; // index from 0
- if ( k < NODE_FIELDS )
- /* node line is incorrect */
- { err_no = EN11; goto error; }
-
- if ( i < 0 || i > n )
- /* wrong value of node */
- { err_no = EN12; goto error; }
-
- switch (nd) {
- case 's': /* source line */
-
- if ( no_nslines != 0)
- /* more than one source line */
- { err_no = EN9; goto error; }
-
- no_nslines = 1;
- src = verts[i];
- break;
-
- case 't': /* sink line */
-
- if ( no_nklines != 0)
- /* more than one sink line */
- { err_no = EN9; goto error; }
-
- no_nklines = 1;
- sink = verts[i];
- break;
-
- default:
- /* wrong type of node-line */
- err_no = EN12; goto error;
- }
- break;
-
- case 'a': /* arc description */
- if ( no_nslines == 0 || no_nklines == 0 )
- /* there was not source and sink description above */
- { err_no = EN14; goto error; }
-
- if ( no_alines >= m )
- /*too many arcs on input*/
- { err_no = EN16; goto error; }
-
- if (
- /* reading an arc description */
- sscanf ( in_line.c_str(),"%*c %ld %ld %ld",
- &tail, &head, &cap )
- != ARC_FIELDS
- )
- /* arc description is not correct */
- { err_no = EN15; goto error; }
-
- --tail; // index from 0, not 1
- --head;
- if ( tail < 0 || tail > n ||
- head < 0 || head > n
- )
- /* wrong value of nodes */
- { err_no = EN17; goto error; }
-
- {
- edge_descriptor e1, e2;
- bool in1, in2;
- tie(e1, in1) = add_edge(verts[tail], verts[head], g);
- tie(e2, in2) = add_edge(verts[head], verts[tail], g);
- if (!in1 || !in2) {
- std::cerr << "unable to add edge (" << head << "," << tail << ")"
- << std::endl;
- return -1;
- }
- capacity[e1] = cap;
- capacity[e2] = 0;
- reverse_edge[e1] = e2;
- reverse_edge[e2] = e1;
- }
- ++no_alines;
- break;
-
- default:
- /* unknown type of line */
- err_no = EN18; goto error;
-
- } /* end of switch */
- } /* end of input loop */
-
- /* ----- all is red or error while reading ----- */
-
- if ( feof (stdin) == 0 ) /* reading error */
- { err_no=EN21; goto error; }
-
- if ( no_lines == 0 ) /* empty input */
- { err_no = EN22; goto error; }
-
- if ( no_alines < m ) /* not enough arcs */
- { err_no = EN19; goto error; }
-
- if ( out_degree(src, g) == 0 || out_degree(sink, g) == 0 )
- /* no arc goes out of the source */
- { err_no = EN20; goto error; }
-
- /* Thanks God! all is done */
- return (0);
-
- /* ---------------------------------- */
- error: /* error found reading input */
-
- printf ( "\nline %ld of input - %s\n",
- no_lines, err_message[err_no] );
-
- exit (1);
- return (0); /* to avoid warning */
-}
-/* -------------------- end of parser -------------------*/
-
-} // namespace boost
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-
-#ifndef BOOST_GRAPH_RELAX_HPP
-#define BOOST_GRAPH_RELAX_HPP
-
-#include <functional>
-#include <boost/limits.hpp> // for numeric limits
-#include <boost/graph/graph_traits.hpp>
-#include <boost/property_map.hpp>
-
-namespace boost {
-
- // The following version of the plus functor prevents
- // problems due to overflow at positive infinity.
-
- template <class T>
- struct closed_plus
- {
- // std::abs just isn't portable :(
- template <class X>
- inline X my_abs(const X& x) const { return x < 0 ? -x : x; }
-
- T operator()(const T& a, const T& b) const {
- using namespace std;
- T inf = (numeric_limits<T>::max)();
- if (b > 0 && my_abs(inf - a) < b)
- return inf;
- return a + b;
- }
- };
-
- template <class Graph, class WeightMap,
- class PredecessorMap, class DistanceMap,
- class BinaryFunction, class BinaryPredicate>
- bool relax(typename graph_traits<Graph>::edge_descriptor e,
- const Graph& g, const WeightMap& w,
- PredecessorMap& p, DistanceMap& d,
- const BinaryFunction& combine, const BinaryPredicate& compare)
- {
- typedef typename graph_traits<Graph>::directed_category DirCat;
- bool is_undirected = is_same<DirCat, undirected_tag>::value;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- Vertex u = source(e, g), v = target(e, g);
- typedef typename property_traits<DistanceMap>::value_type D;
- typedef typename property_traits<WeightMap>::value_type W;
- D d_u = get(d, u), d_v = get(d, v);
- W w_e = get(w, e);
-
- if ( compare(combine(d_u, w_e), d_v) ) {
- put(d, v, combine(d_u, w_e));
- put(p, v, u);
- return true;
- } else if (is_undirected && compare(combine(d_v, w_e), d_u)) {
- put(d, u, combine(d_v, w_e));
- put(p, u, v);
- return true;
- } else
- return false;
- }
-
- template <class Graph, class WeightMap,
- class PredecessorMap, class DistanceMap>
- bool relax(typename graph_traits<Graph>::edge_descriptor e,
- const Graph& g, WeightMap w, PredecessorMap p, DistanceMap d)
- {
- typedef typename property_traits<DistanceMap>::value_type D;
- typedef closed_plus<D> Combine;
- typedef std::less<D> Compare;
- return relax(e, g, w, p, d, Combine(), Compare());
- }
-
-} // namespace boost
-
-#endif /* BOOST_GRAPH_RELAX_HPP */
+++ /dev/null
-// (C) Copyright David Abrahams 2000.
-// Distributed under the 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 REVERSE_GRAPH_DWA092300_H_
-# define REVERSE_GRAPH_DWA092300_H_
-
-#include <boost/graph/adjacency_iterator.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/tuple/tuple.hpp>
-
-namespace boost {
-
-struct reverse_graph_tag { };
-
- namespace detail {
-
- template <bool isEdgeList> struct choose_rev_edge_iter { };
- template <> struct choose_rev_edge_iter<true> {
- template <class G> struct bind_ {
- typedef typename graph_traits<G>::edge_iterator type;
- };
- };
- template <> struct choose_rev_edge_iter<false> {
- template <class G> struct bind_ {
- typedef void type;
- };
- };
-
- } // namespace detail
-
-template <class BidirectionalGraph, class GraphRef = const BidirectionalGraph&>
-class reverse_graph {
- typedef reverse_graph<BidirectionalGraph, GraphRef> Self;
- typedef graph_traits<BidirectionalGraph> Traits;
- public:
- typedef BidirectionalGraph base_type;
-
- // Constructor
- reverse_graph(GraphRef g) : m_g(g) {}
-
- // Graph requirements
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
- typedef typename Traits::directed_category directed_category;
- typedef typename Traits::edge_parallel_category edge_parallel_category;
- typedef typename Traits::traversal_category traversal_category;
-
- // IncidenceGraph requirements
- typedef typename Traits::in_edge_iterator out_edge_iterator;
- typedef typename Traits::degree_size_type degree_size_type;
-
- // BidirectionalGraph requirements
- typedef typename Traits::out_edge_iterator in_edge_iterator;
-
- // AdjacencyGraph requirements
- typedef typename adjacency_iterator_generator<Self,
- vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
-
- // VertexListGraph requirements
- typedef typename Traits::vertex_iterator vertex_iterator;
-
- // EdgeListGraph requirements
- enum { is_edge_list = is_convertible<traversal_category,
- edge_list_graph_tag>::value };
- typedef detail::choose_rev_edge_iter<is_edge_list> ChooseEdgeIter;
- typedef typename ChooseEdgeIter::
- template bind_<BidirectionalGraph>::type edge_iterator;
- typedef typename Traits::vertices_size_type vertices_size_type;
- typedef typename Traits::edges_size_type edges_size_type;
-
- // More typedefs used by detail::edge_property_map, vertex_property_map
- typedef typename BidirectionalGraph::edge_property_type
- edge_property_type;
- typedef typename BidirectionalGraph::vertex_property_type
- vertex_property_type;
- typedef reverse_graph_tag graph_tag;
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- // Bundled properties support
- template<typename Descriptor>
- typename graph::detail::bundled_result<BidirectionalGraph,
- Descriptor>::type&
- operator[](Descriptor x)
- { return m_g[x]; }
-
- template<typename Descriptor>
- typename graph::detail::bundled_result<BidirectionalGraph,
- Descriptor>::type const&
- operator[](Descriptor x) const
- { return m_g[x]; }
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-
- static vertex_descriptor null_vertex()
- { return Traits::null_vertex(); }
-
- // would be private, but template friends aren't portable enough.
- // private:
- GraphRef m_g;
-};
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template<typename Graph, typename GraphRef>
- struct vertex_bundle_type<reverse_graph<Graph, GraphRef> >
- : vertex_bundle_type<Graph> { };
-
- template<typename Graph, typename GraphRef>
- struct edge_bundle_type<reverse_graph<Graph, GraphRef> >
- : edge_bundle_type<Graph> { };
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-
-template <class BidirectionalGraph>
-inline reverse_graph<BidirectionalGraph>
-make_reverse_graph(const BidirectionalGraph& g)
-{
- return reverse_graph<BidirectionalGraph>(g);
-}
-
-template <class BidirectionalGraph>
-inline reverse_graph<BidirectionalGraph, BidirectionalGraph&>
-make_reverse_graph(BidirectionalGraph& g)
-{
- return reverse_graph<BidirectionalGraph, BidirectionalGraph&>(g);
-}
-
-template <class BidirectionalGraph, class GRef>
-std::pair<typename reverse_graph<BidirectionalGraph>::vertex_iterator,
- typename reverse_graph<BidirectionalGraph>::vertex_iterator>
-vertices(const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return vertices(g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-std::pair<typename reverse_graph<BidirectionalGraph>::edge_iterator,
- typename reverse_graph<BidirectionalGraph>::edge_iterator>
-edges(const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return edges(g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline std::pair<typename BidirectionalGraph::in_edge_iterator,
- typename BidirectionalGraph::in_edge_iterator>
-out_edges(const typename BidirectionalGraph::vertex_descriptor u,
- const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return in_edges(u, g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline typename BidirectionalGraph::vertices_size_type
-num_vertices(const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return num_vertices(g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline typename reverse_graph<BidirectionalGraph>::edges_size_type
-num_edges(const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return num_edges(g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline typename BidirectionalGraph::degree_size_type
-out_degree(const typename BidirectionalGraph::vertex_descriptor u,
- const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return in_degree(u, g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline std::pair<typename BidirectionalGraph::edge_descriptor, bool>
-edge(const typename BidirectionalGraph::vertex_descriptor u,
- const typename BidirectionalGraph::vertex_descriptor v,
- const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return edge(v, u, g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline std::pair<typename BidirectionalGraph::out_edge_iterator,
- typename BidirectionalGraph::out_edge_iterator>
-in_edges(const typename BidirectionalGraph::vertex_descriptor u,
- const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return out_edges(u, g.m_g);
-}
-
-template <class BidirectionalGraph, class GRef>
-inline std::pair<typename reverse_graph<BidirectionalGraph,GRef>::adjacency_iterator,
- typename reverse_graph<BidirectionalGraph,GRef>::adjacency_iterator>
-adjacent_vertices(const typename BidirectionalGraph::vertex_descriptor u,
- const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- typedef reverse_graph<BidirectionalGraph,GRef> Graph;
- typename Graph::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
- typedef typename Graph::adjacency_iterator adjacency_iterator;
- return std::make_pair(adjacency_iterator(first, const_cast<Graph*>(&g)),
- adjacency_iterator(last, const_cast<Graph*>(&g)));
-}
-
-template <class BidirectionalGraph, class GRef>
-inline typename BidirectionalGraph::degree_size_type
-in_degree(const typename BidirectionalGraph::vertex_descriptor u,
- const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return out_degree(u, g.m_g);
-}
-
-template <class Edge, class BidirectionalGraph, class GRef>
-inline typename graph_traits<BidirectionalGraph>::vertex_descriptor
-source(const Edge& e, const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return target(e, g.m_g);
-}
-
-template <class Edge, class BidirectionalGraph, class GRef>
-inline typename graph_traits<BidirectionalGraph>::vertex_descriptor
-target(const Edge& e, const reverse_graph<BidirectionalGraph,GRef>& g)
-{
- return source(e, g.m_g);
-}
-
-
-namespace detail {
-
- struct reverse_graph_vertex_property_selector {
- template <class ReverseGraph, class Property, class Tag>
- struct bind_ {
- typedef typename ReverseGraph::base_type Graph;
- typedef property_map<Graph, Tag> PMap;
- typedef typename PMap::type type;
- typedef typename PMap::const_type const_type;
- };
- };
-
- struct reverse_graph_edge_property_selector {
- template <class ReverseGraph, class Property, class Tag>
- struct bind_ {
- typedef typename ReverseGraph::base_type Graph;
- typedef property_map<Graph, Tag> PMap;
- typedef typename PMap::type type;
- typedef typename PMap::const_type const_type;
- };
- };
-
-} // namespace detail
-
-template <>
-struct vertex_property_selector<reverse_graph_tag> {
- typedef detail::reverse_graph_vertex_property_selector type;
-};
-
-template <>
-struct edge_property_selector<reverse_graph_tag> {
- typedef detail::reverse_graph_edge_property_selector type;
-};
-
-template <class BidirGraph, class GRef, class Property>
-typename property_map<BidirGraph, Property>::type
-get(Property p, reverse_graph<BidirGraph,GRef>& g)
-{
- return get(p, g.m_g);
-}
-
-template <class BidirGraph, class GRef, class Property>
-typename property_map<BidirGraph, Property>::const_type
-get(Property p, const reverse_graph<BidirGraph,GRef>& g)
-{
- const BidirGraph& gref = g.m_g; // in case GRef is non-const
- return get(p, gref);
-}
-
-template <class BidirectionalGraph, class GRef, class Property, class Key>
-typename property_traits<
- typename property_map<BidirectionalGraph, Property>::const_type
->::value_type
-get(Property p, const reverse_graph<BidirectionalGraph,GRef>& g, const Key& k)
-{
- return get(p, g.m_g, k);
-}
-
-template <class BidirectionalGraph, class GRef, class Property, class Key, class Value>
-void
-put(Property p, const reverse_graph<BidirectionalGraph,GRef>& g, const Key& k,
- const Value& val)
-{
- put(p, g.m_g, k, val);
-}
-
-template<typename BidirectionalGraph, typename GRef, typename Tag,
- typename Value>
-inline void
-set_property(const reverse_graph<BidirectionalGraph,GRef>& g, Tag tag,
- const Value& value)
-{
- set_property(g.m_g, tag, value);
-}
-
-template<typename BidirectionalGraph, typename GRef, typename Tag>
-inline
-typename graph_property<BidirectionalGraph, Tag>::type
-get_property(const reverse_graph<BidirectionalGraph,GRef>& g, Tag tag)
-{
- return get_property(g.m_g, tag);
-}
-
-} // namespace boost
-
-#endif
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Copyright 2004 The Trustees of Indiana University
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_SEQUENTIAL_VERTEX_COLORING_HPP
-#define BOOST_GRAPH_SEQUENTIAL_VERTEX_COLORING_HPP
-
-#include <vector>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/tuple/tuple.hpp>
-#include <boost/property_map.hpp>
-#include <boost/limits.hpp>
-
-#ifdef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# include <iterator>
-#endif
-
-/* This algorithm is to find coloring of a graph
-
- Algorithm:
- Let G = (V,E) be a graph with vertices (somehow) ordered v_1, v_2, ...,
- v_n. For k = 1, 2, ..., n the sequential algorithm assigns v_k to the
- smallest possible color.
-
- Reference:
-
- Thomas F. Coleman and Jorge J. More, Estimation of sparse Jacobian
- matrices and graph coloring problems. J. Numer. Anal. V20, P187-209, 1983
-
- v_k is stored as o[k] here.
-
- The color of the vertex v will be stored in color[v].
- i.e., vertex v belongs to coloring color[v] */
-
-namespace boost {
- template <class VertexListGraph, class OrderPA, class ColorMap>
- typename property_traits<ColorMap>::value_type
- sequential_vertex_coloring(const VertexListGraph& G, OrderPA order,
- ColorMap color)
- {
- typedef graph_traits<VertexListGraph> GraphTraits;
- typedef typename GraphTraits::vertex_descriptor Vertex;
- typedef typename property_traits<ColorMap>::value_type size_type;
-
- size_type max_color = 0;
- const size_type V = num_vertices(G);
-
- // We need to keep track of which colors are used by
- // adjacent vertices. We do this by marking the colors
- // that are used. The mark array contains the mark
- // for each color. The length of mark is the
- // number of vertices since the maximum possible number of colors
- // is the number of vertices.
- std::vector<size_type> mark(V,
- std::numeric_limits<size_type>::max BOOST_PREVENT_MACRO_SUBSTITUTION());
-
- //Initialize colors
- typename GraphTraits::vertex_iterator v, vend;
- for (tie(v, vend) = vertices(G); v != vend; ++v)
- put(color, *v, V-1);
-
- //Determine the color for every vertex one by one
- for ( size_type i = 0; i < V; i++) {
- Vertex current = get(order,i);
- typename GraphTraits::adjacency_iterator v, vend;
-
- //Mark the colors of vertices adjacent to current.
- //i can be the value for marking since i increases successively
- for (tie(v,vend) = adjacent_vertices(current, G); v != vend; ++v)
- mark[get(color,*v)] = i;
-
- //Next step is to assign the smallest un-marked color
- //to the current vertex.
- size_type j = 0;
-
- //Scan through all useable colors, find the smallest possible
- //color that is not used by neighbors. Note that if mark[j]
- //is equal to i, color j is used by one of the current vertex's
- //neighbors.
- while ( j < max_color && mark[j] == i )
- ++j;
-
- if ( j == max_color ) //All colors are used up. Add one more color
- ++max_color;
-
- //At this point, j is the smallest possible color
- put(color, current, j); //Save the color of vertex current
- }
-
- return max_color;
- }
-
- template<class VertexListGraph, class ColorMap>
- typename property_traits<ColorMap>::value_type
- sequential_vertex_coloring(const VertexListGraph& G, ColorMap color)
- {
- typedef typename graph_traits<VertexListGraph>::vertex_descriptor
- vertex_descriptor;
- typedef typename graph_traits<VertexListGraph>::vertex_iterator
- vertex_iterator;
-
- std::pair<vertex_iterator, vertex_iterator> v = vertices(G);
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
- std::vector<vertex_descriptor> order(v.first, v.second);
-#else
- std::vector<vertex_descriptor> order;
- order.reserve(std::distance(v.first, v.second));
- while (v.first != v.second) order.push_back(*v.first++);
-#endif
- return sequential_vertex_coloring
- (G,
- make_iterator_property_map
- (order.begin(), identity_property_map(),
- graph_traits<VertexListGraph>::null_vertex()),
- color);
- }
-}
-
-#endif
+++ /dev/null
-#ifndef BOOST_GRAPH_SIMPLE_POINT_HPP
-#define BOOST_GRAPH_SIMPLE_POINT_HPP
-
-namespace boost {
-
-template<typename T>
-struct simple_point
-{
- T x;
- T y;
-};
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_SIMPLE_POINT_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 2002 Marc Wintermantel (wintermantel@imes.mavt.ethz.ch)
-// ETH Zurich, Center of Structure Technologies (www.imes.ethz.ch/st)
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-
-#ifndef BOOST_GRAPH_SLOAN_HPP
-#define BOOST_GRAPH_SLOAN_HPP
-
-#define WEIGHT1 1 //default weight for the distance in the Sloan algorithm
-#define WEIGHT2 2 //default weight for the degree in the Sloan algorithm
-#define MAXINT 2147483647 //Maximum value for a 32bit integer
-
-#include <boost/config.hpp>
-#include <vector>
-#include <queue>
-#include <boost/pending/queue.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-#include <boost/property_map.hpp>
-#include <algorithm>
-#include <utility>
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/cuthill_mckee_ordering.hpp>
-
-
-////////////////////////////////////////////////////////////
-//
-//Sloan-Algorithm for graph reordering
-//(optimzes profile and wavefront, not primiraly bandwidth
-//
-////////////////////////////////////////////////////////////
-
-namespace boost {
-
- /////////////////////////////////////////////////////////////////////////
- // Function that returns the maximum depth of
- // a rooted level strucutre (RLS)
- //
- /////////////////////////////////////////////////////////////////////////
- template<class Distance>
- unsigned RLS_depth(Distance& d)
- {
- unsigned h_s = 0;
- typename Distance::iterator iter;
-
- for (iter = d.begin(); iter != d.end(); ++iter)
- {
- if(*iter > h_s)
- {
- h_s = *iter;
- }
- }
-
- return h_s;
- }
-
-
-
- /////////////////////////////////////////////////////////////////////////
- // Function that returns the width of the largest level of
- // a rooted level strucutre (RLS)
- //
- /////////////////////////////////////////////////////////////////////////
- template<class Distance, class my_int>
- unsigned RLS_max_width(Distance& d, my_int depth)
- {
-
- //Searching for the maximum width of a level
- std::vector<unsigned> dummy_width(depth+1, 0);
- std::vector<unsigned>::iterator my_it;
- typename Distance::iterator iter;
- unsigned w_max = 0;
-
- for (iter = d.begin(); iter != d.end(); ++iter)
- {
- dummy_width[*iter]++;
- }
-
- for(my_it = dummy_width.begin(); my_it != dummy_width.end(); ++my_it)
- {
- if(*my_it > w_max) w_max = *my_it;
- }
-
- return w_max;
-
- }
-
-
- /////////////////////////////////////////////////////////////////////////
- // Function for finding a good starting node for Sloan algorithm
- //
- // This is to find a good starting node. "good" is in the sense
- // of the ordering generated.
- /////////////////////////////////////////////////////////////////////////
- template <class Graph, class ColorMap, class DegreeMap>
- typename graph_traits<Graph>::vertex_descriptor
- sloan_start_end_vertices(Graph& G,
- typename graph_traits<Graph>::vertex_descriptor &s,
- ColorMap color,
- DegreeMap degree)
- {
- typedef typename property_traits<DegreeMap>::value_type Degree;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename std::vector< typename graph_traits<Graph>::vertices_size_type>::iterator vec_iter;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
-
- typedef typename property_map<Graph, vertex_index_t>::const_type VertexID;
-
- s = *(vertices(G).first);
- Vertex e = s;
- Vertex i;
- unsigned my_degree = get(degree, s );
- unsigned dummy, h_i, h_s, w_i, w_e;
- bool new_start = true;
- unsigned maximum_degree = 0;
-
- //Creating a std-vector for storing the distance from the start vertex in dist
- std::vector<typename graph_traits<Graph>::vertices_size_type> dist(num_vertices(G), 0);
-
- //Wrap a property_map_iterator around the std::iterator
- boost::iterator_property_map<vec_iter, VertexID, size_type, size_type&> dist_pmap(dist.begin(), get(vertex_index, G));
-
- //Creating a property_map for the indices of a vertex
- typename property_map<Graph, vertex_index_t>::type index_map = get(vertex_index, G);
-
- //Creating a priority queue
- typedef indirect_cmp<DegreeMap, std::greater<Degree> > Compare;
- Compare comp(degree);
- std::priority_queue<Vertex, std::vector<Vertex>, Compare> degree_queue(comp);
-
- //step 1
- //Scan for the vertex with the smallest degree and the maximum degree
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
- {
- dummy = get(degree, *ui);
-
- if(dummy < my_degree)
- {
- my_degree = dummy;
- s = *ui;
- }
-
- if(dummy > maximum_degree)
- {
- maximum_degree = dummy;
- }
- }
- //end 1
-
- do{
- new_start = false; //Setting the loop repetition status to false
-
- //step 2
- //initialize the the disance std-vector with 0
- for(typename std::vector<typename graph_traits<Graph>::vertices_size_type>::iterator iter = dist.begin(); iter != dist.end(); ++iter) *iter = 0;
-
- //generating the RLS (rooted level structure)
- breadth_first_search
- (G, s, visitor
- (
- make_bfs_visitor(record_distances(dist_pmap, on_tree_edge() ) )
- )
- );
-
- //end 2
-
- //step 3
- //calculating the depth of the RLS
- h_s = RLS_depth(dist);
-
- //step 4
- //pushing one node of each degree in an ascending manner into degree_queue
- std::vector<bool> shrink_trace(maximum_degree, false);
- for (tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
- {
- dummy = get(degree, *ui);
-
- if( (dist[index_map[*ui]] == h_s ) && ( !shrink_trace[ dummy ] ) )
- {
- degree_queue.push(*ui);
- shrink_trace[ dummy ] = true;
- }
- }
-
- //end 3 & 4
-
-
- //step 5
- //Initializing w
- w_e = MAXINT;
- //end 5
-
-
- //step 6
- //Testing for termination
- while( !degree_queue.empty() )
- {
- i = degree_queue.top(); //getting the node with the lowest degree from the degree queue
- degree_queue.pop(); //ereasing the node with the lowest degree from the degree queue
-
- //generating a RLS
- for(typename std::vector<typename graph_traits<Graph>::vertices_size_type>::iterator iter = dist.begin(); iter != dist.end(); ++iter) *iter = 0;
-
- breadth_first_search
- (G, i, boost::visitor
- (
- make_bfs_visitor(record_distances(dist_pmap, on_tree_edge() ) )
- )
- );
-
- //Calculating depth and width of the rooted level
- h_i = RLS_depth(dist);
- w_i = RLS_max_width(dist, h_i);
-
- //Testing for termination
- if( (h_i > h_s) && (w_i < w_e) )
- {
- h_s = h_i;
- s = i;
- while(!degree_queue.empty()) degree_queue.pop();
- new_start = true;
- }
- else if(w_i < w_e)
- {
- w_e = w_i;
- e = i;
- }
- }
- //end 6
-
- }while(new_start);
-
- return e;
- }
-
- //////////////////////////////////////////////////////////////////////////
- // Sloan algorithm with a given starting Vertex.
- //
- // This algorithm requires user to provide a starting vertex to
- // compute Sloan ordering.
- //////////////////////////////////////////////////////////////////////////
- template <class Graph, class OutputIterator,
- class ColorMap, class DegreeMap,
- class PriorityMap, class Weight>
- OutputIterator
- sloan_ordering(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor s,
- typename graph_traits<Graph>::vertex_descriptor e,
- OutputIterator permutation,
- ColorMap color,
- DegreeMap degree,
- PriorityMap priority,
- Weight W1,
- Weight W2)
- {
- //typedef typename property_traits<DegreeMap>::value_type Degree;
- typedef typename property_traits<PriorityMap>::value_type Degree;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename std::vector<typename graph_traits<Graph>::vertices_size_type>::iterator vec_iter;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
-
- typedef typename property_map<Graph, vertex_index_t>::const_type VertexID;
-
-
- //Creating a std-vector for storing the distance from the end vertex in it
- typename std::vector<typename graph_traits<Graph>::vertices_size_type> dist(num_vertices(g), 0);
-
- //Wrap a property_map_iterator around the std::iterator
- boost::iterator_property_map<vec_iter, VertexID, size_type, size_type&> dist_pmap(dist.begin(), get(vertex_index, g));
-
- breadth_first_search
- (g, e, visitor
- (
- make_bfs_visitor(record_distances(dist_pmap, on_tree_edge() ) )
- )
- );
-
- //Creating a property_map for the indices of a vertex
- typename property_map<Graph, vertex_index_t>::type index_map = get(vertex_index, g);
-
- //Sets the color and priority to their initial status
- unsigned cdeg;
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
- {
- put(color, *ui, Color::white());
- cdeg=get(degree, *ui)+1;
- put(priority, *ui, W1*dist[index_map[*ui]]-W2*cdeg );
- }
-
- //Priority list
- typedef indirect_cmp<PriorityMap, std::greater<Degree> > Compare;
- Compare comp(priority);
- std::list<Vertex> priority_list;
-
- //Some more declarations
- typename graph_traits<Graph>::out_edge_iterator ei, ei_end, ei2, ei2_end;
- Vertex u, v, w;
-
- put(color, s, Color::green()); //Sets the color of the starting vertex to gray
- priority_list.push_front(s); //Puts s into the priority_list
-
- while ( !priority_list.empty() )
- {
- priority_list.sort(comp); //Orders the elements in the priority list in an ascending manner
-
- u = priority_list.front(); //Accesses the last element in the priority list
- priority_list.pop_front(); //Removes the last element in the priority list
-
- if(get(color, u) == Color::green() )
- {
- //for-loop over all out-edges of vertex u
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
- {
- v = target(*ei, g);
-
- put( priority, v, get(priority, v) + W2 ); //updates the priority
-
- if (get(color, v) == Color::white() ) //test if the vertex is inactive
- {
- put(color, v, Color::green() ); //giving the vertex a preactive status
- priority_list.push_front(v); //writing the vertex in the priority_queue
- }
- }
- }
-
- //Here starts step 8
- *permutation++ = u; //Puts u to the first position in the permutation-vector
- put(color, u, Color::black() ); //Gives u an inactive status
-
- //for loop over all the adjacent vertices of u
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
-
- v = target(*ei, g);
-
- if (get(color, v) == Color::green() ) { //tests if the vertex is inactive
-
- put(color, v, Color::red() ); //giving the vertex an active status
- put(priority, v, get(priority, v)+W2); //updates the priority
-
- //for loop over alll adjacent vertices of v
- for (tie(ei2, ei2_end) = out_edges(v, g); ei2 != ei2_end; ++ei2) {
- w = target(*ei2, g);
-
- if(get(color, w) != Color::black() ) { //tests if vertex is postactive
-
- put(priority, w, get(priority, w)+W2); //updates the priority
-
- if(get(color, w) == Color::white() ){
-
- put(color, w, Color::green() ); // gives the vertex a preactive status
- priority_list.push_front(w); // puts the vertex into the priority queue
-
- } //end if
-
- } //end if
-
- } //end for
-
- } //end if
-
- } //end for
-
- } //end while
-
-
- return permutation;
- }
-
- /////////////////////////////////////////////////////////////////////////////////////////
- // Same algorithm as before, but without the weights given (taking default weights
- template <class Graph, class OutputIterator,
- class ColorMap, class DegreeMap,
- class PriorityMap>
- OutputIterator
- sloan_ordering(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor s,
- typename graph_traits<Graph>::vertex_descriptor e,
- OutputIterator permutation,
- ColorMap color,
- DegreeMap degree,
- PriorityMap priority)
- {
- return sloan_ordering(g, s, e, permutation, color, degree, priority, WEIGHT1, WEIGHT2);
- }
-
-
- //////////////////////////////////////////////////////////////////////////
- // Sloan algorithm without a given starting Vertex.
- //
- // This algorithm finds a good starting vertex itself to
- // compute Sloan-ordering.
- //////////////////////////////////////////////////////////////////////////
-
-
-
- template < class Graph, class OutputIterator,
- class Color, class Degree,
- class Priority, class Weight>
- inline OutputIterator
- sloan_ordering(Graph& G,
- OutputIterator permutation,
- Color color,
- Degree degree,
- Priority priority,
- Weight W1,
- Weight W2 )
- {
- typedef typename boost::graph_traits<Graph>::vertex_descriptor Vertex;
-
- Vertex s, e;
- e = sloan_start_end_vertices(G, s, color, degree);
-
- return sloan_ordering(G, s, e, permutation, color, degree, priority, W1, W2);
- }
-
- /////////////////////////////////////////////////////////////////////////////////////////
- // Same as before, but without given weights (default weights are taken instead)
- template < class Graph, class OutputIterator,
- class Color, class Degree,
- class Priority >
- inline OutputIterator
- sloan_ordering(Graph& G,
- OutputIterator permutation,
- Color color,
- Degree degree,
- Priority priority)
- {
- return sloan_ordering(G, permutation, color, degree, priority, WEIGHT1, WEIGHT2);
- }
-
-
-} // namespace boost
-
-
-#endif // BOOST_GRAPH_SLOAN_HPP
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_GRAPH_SMALL_WORLD_GENERATOR_HPP
-#define BOOST_GRAPH_SMALL_WORLD_GENERATOR_HPP
-
-#include <iterator>
-#include <utility>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/uniform_int.hpp>
-
-namespace boost {
-
- // Assumes undirected
- template<typename RandomGenerator, typename Graph>
- class small_world_iterator
- {
- typedef typename graph_traits<Graph>::vertices_size_type
- vertices_size_type;
-
- public:
- typedef std::input_iterator_tag iterator_category;
- typedef std::pair<vertices_size_type, vertices_size_type> value_type;
- typedef const value_type& reference;
- typedef const value_type* pointer;
- typedef void difference_type;
-
- small_world_iterator() : gen(0) {}
- small_world_iterator(RandomGenerator& gen, vertices_size_type n,
- vertices_size_type k, double prob = 0.0,
- bool allow_self_loops = false)
- : gen(&gen), n(n), k(k), prob(prob), source(0),
- target(allow_self_loops? 0 : 1),
- allow_self_loops(allow_self_loops),
- current(0, allow_self_loops? 0 : 1)
- { }
-
- reference operator*() const { return current; }
- pointer operator->() const { return ¤t; }
-
- small_world_iterator& operator++()
- {
- target = (target + 1) % n;
- if (target == (source + k/2 + 1) % n) {
- ++source;
- if (allow_self_loops) target = source;
- else target = (source + 1) % n;
- }
- current.first = source;
-
- uniform_01<RandomGenerator, double> rand01(*gen);
- uniform_int<vertices_size_type> rand_vertex_gen(0, n-1);
- double x = rand01();
- *gen = rand01.base(); // GRRRR
- if (x < prob) {
- vertices_size_type lower = (source + n - k/2) % n;
- vertices_size_type upper = (source + k/2) % n;
- do {
- current.second = rand_vertex_gen(*gen);
- } while (current.second >= lower && current.second <= upper
- || (upper < lower
- && (current.second >= lower || current.second <= upper)));
- } else {
- current.second = target;
- }
- return *this;
- }
-
- small_world_iterator operator++(int)
- {
- small_world_iterator temp(*this);
- ++(*this);
- return temp;
- }
-
- bool operator==(const small_world_iterator& other) const
- {
- if (!gen && other.gen) return other == *this;
- else if (gen && !other.gen) return source == n;
- else if (!gen && !other.gen) return true;
- return source == other.source && target == other.target;
- }
-
- bool operator!=(const small_world_iterator& other) const
- { return !(*this == other); }
-
- private:
- void next()
- {
- uniform_int<vertices_size_type> rand_vertex(0, n-1);
- current.first = rand_vertex(*gen);
- do {
- current.second = rand_vertex(*gen);
- } while (current.first == current.second && !allow_self_loops);
- }
-
- RandomGenerator* gen;
- vertices_size_type n;
- vertices_size_type k;
- double prob;
- vertices_size_type source;
- vertices_size_type target;
- bool allow_self_loops;
- value_type current;
- };
-
-} // end namespace boost
-
-#endif // BOOST_GRAPH_SMALL_WORLD_GENERATOR_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_SMALLEST_LAST_VERTEX_ORDERING_HPP
-#define BOOST_SMALLEST_LAST_VERTEX_ORDERING_HPP
-/*
- The smallest-last ordering is defined for the loopless graph G with
- vertices a(j), j = 1,2,...,n where a(j) is the j-th column of A and
- with edge (a(i),a(j)) if and only if columns i and j have a
- non-zero in the same row position. The smallest-last ordering is
- determined recursively by letting list(k), k = n,...,1 be a column
- with least degree in the subgraph spanned by the un-ordered
- columns.
- */
-#include <vector>
-#include <algorithm>
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/pending/bucket_sorter.hpp>
-
-namespace boost {
-
- template <class VertexListGraph, class Order, class Degree, class Marker>
- void
- smallest_last_vertex_ordering(const VertexListGraph& G, Order order,
- Degree degree, Marker marker) {
- typedef typename graph_traits<VertexListGraph> GraphTraits;
- typedef typename GraphTraits::vertex_descriptor Vertex;
- //typedef typename GraphTraits::size_type size_type;
- typedef std::size_t size_type;
-
- const size_type num = num_vertices(G);
-
- typedef typename vertex_property_map<VertexListGraph, vertex_index_t>::type ID;
- typedef bucket_sorter<size_type, Vertex, Degree, ID> BucketSorter;
-
- BucketSorter degree_bucket_sorter(num, num, degree,
- get_vertex_property(G, vertex_index));
-
- smallest_last_vertex_ordering(G, order, degree, marker, degree_bucket_sorter);
- }
-
- template <class VertexListGraph, class Order, class Degree,
- class Marker, class BucketSorter>
- void
- smallest_last_vertex_ordering(const VertexListGraph& G, Order order,
- Degree degree, Marker marker,
- BucketSorter& degree_buckets) {
- typedef typename graph_traits<VertexListGraph> GraphTraits;
- typedef typename GraphTraits::vertex_descriptor Vertex;
- //typedef typename GraphTraits::size_type size_type;
- typedef std::size_t size_type;
-
- const size_type num = num_vertices(G);
-
- typename GraphTraits::vertex_iterator v, vend;
- for (boost::tie(v, vend) = vertices(G); v != vend; ++v) {
- put(marker, *v, num);
- put(degree, *v, out_degree(*v, G));
- degree_buckets.push(*v);
- }
-
- size_type minimum_degree = 1;
- size_type current_order = num - 1;
-
- while ( 1 ) {
- typedef typename BucketSorter::stack MDStack;
- MDStack minimum_degree_stack = degree_buckets[minimum_degree];
- while (minimum_degree_stack.empty())
- minimum_degree_stack = degree_buckets[++minimum_degree];
-
- Vertex node = minimum_degree_stack.top();
- put(order, current_order, node);
-
- if ( current_order == 0 ) //find all vertices
- break;
-
- minimum_degree_stack.pop();
- put(marker, node, 0); //node has been ordered.
-
- typename GraphTraits::adjacency_iterator v, vend;
- for (boost::tie(v,vend) = adjacent_vertices(node, G); v != vend; ++v)
-
- if ( get(marker,*v) > current_order ) { //*v is unordered vertex
- put(marker, *v, current_order); //mark the columns adjacent to node
-
- //It is possible minimum degree goes down
- //Here we keep tracking it.
- put(degree, *v, get(degree, *v) - 1);
- BOOST_USING_STD_MIN();
- minimum_degree = min BOOST_PREVENT_MACRO_SUBSTITUTION(minimum_degree, get(degree, *v));
-
- //update the position of *v in the bucket sorter
- degree_buckets.update(*v);
- }
-
- current_order--;
- }
-
- //at this point, order[i] = v_i;
- }
-
-}
-
-#endif
-
+++ /dev/null
-//=======================================================================
-// Copyright 1997-2001 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_SGB_GRAPH_HPP
-#define BOOST_GRAPH_SGB_GRAPH_HPP
-
-#include <boost/config.hpp>
-#include <boost/iterator.hpp>
-#include <boost/operators.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-
-// Thanks to Andreas Scherer for numerous suggestions and fixes!
-
-// This file adapts a Stanford GraphBase (SGB) Graph pointer into a
-// VertexListGraph. Note that a graph adaptor class is not needed,
-// SGB's Graph* is used as is. The VertexListGraph concept is fulfilled by
-// defining the appropriate non-member functions for Graph*.
-//
-// The PROTOTYPES change file extensions to SGB must be applied so
-// that the SGB functions have real prototypes which are necessary for
-// the C++ compiler. To apply the PROTOTYPES extensions, before you do
-// "make tests install" for SGB do "ln -s PROTOTYPES/* ." to the SGB
-// root directory (or just copy all the files from the PROTOTYPES
-// directory to the SGB root directory).
-//
-extern "C" {
- // We include all global definitions for the general stuff
- // of The Stanford GraphBase and its various graph generator
- // functions by reading all SGB headerfiles as in section 2 of
- // the "test_sample" program.
-#include <gb_graph.h> /* SGB data structures */
-#include <gb_io.h> /* SGB input/output routines */
-#include <gb_flip.h> /* random number generator */
-#include <gb_dijk.h> /* routines for shortest paths */
-#include <gb_basic.h> /* the basic graph operations */
-#undef empty /* avoid name clash with C++ standard library */
- inline Graph* empty( long n ) /* and provide workaround */
- { return board(n,0L,0L,0L,2L,0L,0L); }
-#include <gb_books.h> /* graphs based on literature */
-#include <gb_econ.h> /* graphs based on economic data */
-#include <gb_games.h> /* graphs based on football scores */
-#include <gb_gates.h> /* graphs based on logic circuits */
-#undef val /* avoid name clash with g++ headerfile stl_tempbuf.h */
- // val ==> Vertex::x.I
-#include <gb_lisa.h> /* graphs based on Mona Lisa */
-#include <gb_miles.h> /* graphs based on mileage data */
-#include <gb_plane.h> /* planar graphs */
-#include <gb_raman.h> /* Ramanujan graphs */
-#include <gb_rand.h> /* random graphs */
-#include <gb_roget.h> /* graphs based on Roget's Thesaurus */
-#include <gb_save.h> /* we save results in ASCII format */
-#include <gb_words.h> /* five-letter-word graphs */
-#undef weight /* avoid name clash with BGL parameter */
- // weight ==> Vertex::u.I
-}
-
-namespace boost {
- class sgb_edge;
-}
-
-class sgb_out_edge_iterator;
-class sgb_adj_iterator;
-class sgb_vertex_iterator;
-
-namespace boost {
- typedef Graph* sgb_graph_ptr;
- typedef const Graph* sgb_const_graph_ptr;
-
- struct sgb_traversal_tag :
- public virtual vertex_list_graph_tag,
- public virtual incidence_graph_tag,
- public virtual adjacency_graph_tag { };
-
- template <> struct graph_traits<sgb_graph_ptr> {
- typedef Vertex* vertex_descriptor;
- typedef boost::sgb_edge edge_descriptor;
- typedef sgb_out_edge_iterator out_edge_iterator;
- typedef void in_edge_iterator;
- typedef sgb_adj_iterator adjacency_iterator;
- typedef sgb_vertex_iterator vertex_iterator;
- typedef void edge_iterator;
- typedef long vertices_size_type;
- typedef long edge_size_type;
- typedef long degree_size_type;
- typedef directed_tag directed_category;
- typedef sgb_traversal_tag traversal_category;
- typedef allow_parallel_edge_tag edge_parallel_category;
- };
- template <> struct graph_traits<sgb_const_graph_ptr> {
- typedef Vertex* vertex_descriptor;
- typedef boost::sgb_edge edge_descriptor;
- typedef sgb_out_edge_iterator out_edge_iterator;
- typedef void in_edge_iterator;
- typedef sgb_adj_iterator adjacency_iterator;
- typedef sgb_vertex_iterator vertex_iterator;
- typedef void edge_iterator;
- typedef long vertices_size_type;
- typedef long edge_size_type;
- typedef long degree_size_type;
- typedef directed_tag directed_category;
- typedef sgb_traversal_tag traversal_category;
- typedef allow_parallel_edge_tag edge_parallel_category;
- };
-}
-
-namespace boost {
-
- struct edge_length_t {
- typedef edge_property_tag kind;
- };
-
- // We could just use Arc* as the edge descriptor type, but
- // we want to add the source(e,g) function which requires
- // that we carry along a pointer to the source vertex.
- class sgb_edge {
- typedef sgb_edge self;
- public:
- sgb_edge() : _arc(0), _src(0) { }
- sgb_edge(Arc* a, Vertex* s) : _arc(a), _src(s) { }
- friend Vertex* source(self e, sgb_const_graph_ptr) { return e._src; }
- friend Vertex* target(self e, sgb_const_graph_ptr) { return e._arc->tip; }
- friend bool operator==(const self& a, const self& b) {
- return a._arc == b._arc; }
- friend bool operator!=(const self& a, const self& b) {
- return a._arc != b._arc; }
-#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
- template <class Ref> friend class sgb_edge_length_map;
- template <class Tag, class Ref> friend class sgb_edge_util_map;
- friend long get(edge_length_t, const sgb_graph_ptr&, const sgb_edge& key);
- friend long get(edge_length_t, const sgb_const_graph_ptr&, const sgb_edge& key);
- friend void put(edge_length_t, sgb_graph_ptr&, const sgb_edge& key, long value);
- protected:
-#endif
- Arc* _arc;
- Vertex* _src;
- };
-} // namespace boost
-
- class sgb_out_edge_iterator
- : public boost::forward_iterator_helper<
- sgb_out_edge_iterator, boost::sgb_edge,
- std::ptrdiff_t, boost::sgb_edge*, boost::sgb_edge>
- {
- typedef sgb_out_edge_iterator self;
- public:
- sgb_out_edge_iterator() : _src(0), _arc(0) {}
- sgb_out_edge_iterator(Vertex* s, Arc* d) : _src(s), _arc(d) {}
- boost::sgb_edge operator*() { return boost::sgb_edge(_arc, _src); }
- self& operator++() { _arc = _arc->next; return *this; }
- friend bool operator==(const self& x, const self& y) {
- return x._arc == y._arc; }
- protected:
- Vertex* _src;
- Arc* _arc;
- };
-
- class sgb_adj_iterator
- : public boost::forward_iterator_helper<
- sgb_adj_iterator, Vertex*, std::ptrdiff_t, Vertex**,Vertex*>
- {
- typedef sgb_adj_iterator self;
- public:
- sgb_adj_iterator() : _arc(0) {}
- sgb_adj_iterator(Arc* d) : _arc(d) {}
- Vertex* operator*() { return _arc->tip; }
- self& operator++() { _arc = _arc->next; return *this; }
- friend bool operator==(const self& x, const self& y) {
- return x._arc == y._arc; }
- protected:
- Arc* _arc;
- };
-
- // The reason we have this instead of just using Vertex* is that we
- // want to use Vertex* as the vertex_descriptor instead of just
- // Vertex, which avoids problems with boost passing vertex descriptors
- // by value and how that interacts with the sgb_vertex_id_map.
- class sgb_vertex_iterator
- : public boost::forward_iterator_helper<
- sgb_vertex_iterator, Vertex*, std::ptrdiff_t, Vertex**, Vertex*>
- {
- typedef sgb_vertex_iterator self;
- public:
- sgb_vertex_iterator() : _v(0) { }
- sgb_vertex_iterator(Vertex* v) : _v(v) { }
- Vertex* operator*() { return _v; }
- self& operator++() { ++_v; return *this; }
- friend bool operator==(const self& x, const self& y) {
- return x._v == y._v; }
- protected:
- Vertex* _v;
- };
-
-namespace boost {
-
- inline std::pair<sgb_vertex_iterator,sgb_vertex_iterator>
- vertices(sgb_const_graph_ptr g)
- {
- return std::make_pair(sgb_vertex_iterator(g->vertices),
- sgb_vertex_iterator(g->vertices + g->n));
- }
-
- inline std::pair<sgb_out_edge_iterator,sgb_out_edge_iterator>
- out_edges(Vertex* u, sgb_const_graph_ptr)
- {
- return std::make_pair( sgb_out_edge_iterator(u, u->arcs),
- sgb_out_edge_iterator(u, 0) );
- }
-
- inline boost::graph_traits<sgb_graph_ptr>::degree_size_type
- out_degree(Vertex* u, sgb_const_graph_ptr g)
- {
- boost::graph_traits<sgb_graph_ptr>::out_edge_iterator i, i_end;
- boost::tie(i, i_end) = out_edges(u, g);
- return std::distance(i, i_end);
- }
-
- // in_edges?
-
- inline std::pair<sgb_adj_iterator,sgb_adj_iterator>
- adjacent_vertices(Vertex* u, sgb_const_graph_ptr)
- {
- return std::make_pair( sgb_adj_iterator(u->arcs),
- sgb_adj_iterator(0) );
- }
-
- inline long num_vertices(sgb_const_graph_ptr g) { return g->n; }
- inline long num_edges(sgb_const_graph_ptr g) { return g->m; }
-
- inline Vertex* vertex(long v, sgb_const_graph_ptr g)
- { return g->vertices + v; }
-
- // Various Property Maps
-
- // Vertex ID
- class sgb_vertex_id_map
- : public boost::put_get_helper<long, sgb_vertex_id_map>
- {
- public:
- typedef boost::readable_property_map_tag category;
- typedef long value_type;
- typedef long reference;
- typedef Vertex* key_type;
- sgb_vertex_id_map() : _g(0) { }
- sgb_vertex_id_map(sgb_graph_ptr g) : _g(g) { }
- long operator[](Vertex* v) const { return v - _g->vertices; }
- protected:
- sgb_graph_ptr _g;
- };
- inline sgb_vertex_id_map get(vertex_index_t, sgb_graph_ptr g) {
- return sgb_vertex_id_map(g);
- }
-
- // Vertex Name
- class sgb_vertex_name_map
- : public boost::put_get_helper<char*, sgb_vertex_name_map>
- {
- public:
- typedef boost::readable_property_map_tag category;
- typedef char* value_type;
- typedef char* reference;
- typedef Vertex* key_type;
- char* operator[](Vertex* v) const { return v->name; }
- };
- inline sgb_vertex_name_map get(vertex_name_t, sgb_graph_ptr) {
- return sgb_vertex_name_map();
- }
-
- // Vertex Property Tags
-#define SGB_PROPERTY_TAG(KIND,TAG) \
- template <class T> struct TAG##_property { \
- typedef KIND##_property_tag kind; \
- typedef T type; \
- };
- SGB_PROPERTY_TAG(vertex, u)
- SGB_PROPERTY_TAG(vertex, v)
- SGB_PROPERTY_TAG(vertex, w)
- SGB_PROPERTY_TAG(vertex, x)
- SGB_PROPERTY_TAG(vertex, y)
- SGB_PROPERTY_TAG(vertex, z)
-
- // Edge Property Tags
- SGB_PROPERTY_TAG(edge, a)
- SGB_PROPERTY_TAG(edge, b)
-
- // Various Utility Maps
-
- // helpers
- inline Vertex*& get_util(util& u, Vertex*) { return u.V; }
- inline Arc*& get_util(util& u, Arc*) { return u.A; }
- inline sgb_graph_ptr& get_util(util& u, sgb_graph_ptr) { return u.G; }
- inline char*& get_util(util& u, char*) { return u.S; }
- inline long& get_util(util& u, long) { return u.I; }
-
-#define SGB_GET_UTIL_FIELD(KIND,X) \
- template <class T> \
- inline T& get_util_field(KIND* k, X##_property<T>) { \
- return get_util(k->X, T()); }
-
- SGB_GET_UTIL_FIELD(Vertex, u)
- SGB_GET_UTIL_FIELD(Vertex, v)
- SGB_GET_UTIL_FIELD(Vertex, w)
- SGB_GET_UTIL_FIELD(Vertex, x)
- SGB_GET_UTIL_FIELD(Vertex, y)
- SGB_GET_UTIL_FIELD(Vertex, z)
-
- SGB_GET_UTIL_FIELD(Arc, a)
- SGB_GET_UTIL_FIELD(Arc, b)
-
- // Vertex Utility Map
- template <class Tag, class Ref>
- class sgb_vertex_util_map
- : public boost::put_get_helper<Ref, sgb_vertex_util_map<Tag, Ref> >
- {
- public:
- typedef boost::lvalue_property_map_tag category;
- typedef typename Tag::type value_type;
- typedef Vertex* key_type;
- typedef Ref reference;
- reference operator[](Vertex* v) const {
- return get_util_field(v, Tag());
- }
- };
-
- // Edge Utility Map
- template <class Tag, class Ref>
- class sgb_edge_util_map
- : public boost::put_get_helper<Ref, sgb_edge_util_map<Tag, Ref> >
- {
- public:
- typedef boost::lvalue_property_map_tag category;
- typedef typename Tag::type value_type;
- typedef Vertex* key_type;
- typedef Ref reference;
- reference operator[](const sgb_edge& e) const {
- return get_util_field(e._arc, Tag());
- }
- };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <class Tag>
- inline sgb_vertex_util_map<Tag, const typename Tag::type&>
- get_property_map(Tag, const sgb_graph_ptr& g, vertex_property_tag) {
- return sgb_vertex_util_map<Tag, const typename Tag::type&>();
- }
- template <class Tag>
- inline sgb_vertex_util_map<Tag, typename Tag::type&>
- get_property_map(Tag, sgb_graph_ptr& g, vertex_property_tag) {
- return sgb_vertex_util_map<Tag, typename Tag::type&>();
- }
-
- template <class Tag>
- inline sgb_edge_util_map<Tag, const typename Tag::type&>
- get_property_map(Tag, const sgb_graph_ptr& g, edge_property_tag) {
- return sgb_edge_util_map<Tag, const typename Tag::type&>();
- }
- template <class Tag>
- inline sgb_edge_util_map<Tag, typename Tag::type&>
- get_property_map(Tag, sgb_graph_ptr& g, edge_property_tag) {
- return sgb_edge_util_map<Tag, typename Tag::type&>();
- }
-
-#endif // ! BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // Edge Length Access
- template <class Ref>
- class sgb_edge_length_map
- : public boost::put_get_helper<Ref, sgb_edge_length_map<Ref> >
- {
- public:
- typedef boost::lvalue_property_map_tag category;
- typedef long value_type;
- typedef sgb_edge key_type;
- typedef Ref reference;
- reference operator[](const sgb_edge& e) const {
- return e._arc->len;
- }
- };
-
- inline sgb_edge_length_map<const long&>
- get(edge_length_t, const sgb_graph_ptr&) {
- return sgb_edge_length_map<const long&>();
- }
- inline sgb_edge_length_map<const long&>
- get(edge_length_t, const sgb_const_graph_ptr&) {
- return sgb_edge_length_map<const long&>();
- }
- inline sgb_edge_length_map<long&>
- get(edge_length_t, sgb_graph_ptr&) {
- return sgb_edge_length_map<long&>();
- }
- inline long
- get(edge_length_t, const sgb_graph_ptr&, const sgb_edge& key) {
- return key._arc->len;
- }
- inline long
- get(edge_length_t, const sgb_const_graph_ptr&, const sgb_edge& key) {
- return key._arc->len;
- }
- inline void
- put(edge_length_t, sgb_graph_ptr&, const sgb_edge& key, long value)
- {
- key._arc->len = value;
- }
-
- // Property Map Traits Classes
- template <>
- struct property_map<sgb_graph_ptr, edge_length_t> {
- typedef sgb_edge_length_map<long&> type;
- typedef sgb_edge_length_map<const long&> const_type;
- };
- template <>
- struct property_map<sgb_graph_ptr, vertex_index_t> {
- typedef sgb_vertex_id_map type;
- typedef sgb_vertex_id_map const_type;
- };
- template <>
- struct property_map<sgb_graph_ptr, vertex_name_t> {
- typedef sgb_vertex_name_map type;
- typedef sgb_vertex_name_map const_type;
- };
-
- template <>
- struct property_map<sgb_const_graph_ptr, edge_length_t> {
- typedef sgb_edge_length_map<const long&> const_type;
- };
- template <>
- struct property_map<sgb_const_graph_ptr, vertex_index_t> {
- typedef sgb_vertex_id_map const_type;
- };
- template <>
- struct property_map<sgb_const_graph_ptr, vertex_name_t> {
- typedef sgb_vertex_name_map const_type;
- };
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
- namespace detail {
- template <class Kind, class PropertyTag>
- struct sgb_choose_property_map { };
- template <class PropertyTag>
- struct sgb_choose_property_map<vertex_property_tag, PropertyTag> {
- typedef typename PropertyTag::type value_type;
- typedef sgb_vertex_util_map<PropertyTag, value_type&> type;
- typedef sgb_vertex_util_map<PropertyTag, const value_type&> const_type;
- };
- template <class PropertyTag>
- struct sgb_choose_property_map<edge_property_tag, PropertyTag> {
- typedef typename PropertyTag::type value_type;
- typedef sgb_edge_util_map<PropertyTag, value_type&> type;
- typedef sgb_edge_util_map<PropertyTag, const value_type&> const_type;
- };
- } // namespace detail
- template <class PropertyTag>
- struct property_map<sgb_graph_ptr, PropertyTag> {
- typedef typename property_kind<PropertyTag>::type Kind;
- typedef detail::sgb_choose_property_map<Kind, PropertyTag> Choice;
- typedef typename Choice::type type;
- typedef typename Choice::const_type const_type;
- };
- template <class PropertyTag>
- struct property_map<sgb_const_graph_ptr, PropertyTag> {
- typedef typename property_kind<PropertyTag>::type Kind;
- typedef detail::sgb_choose_property_map<Kind, PropertyTag> Choice;
- typedef typename Choice::const_type const_type;
- };
-
-#define SGB_UTIL_ACCESSOR(KIND,X) \
- template <class T> \
- inline sgb_##KIND##_util_map< X##_property<T>, T&> \
- get(X##_property<T>, sgb_graph_ptr&) { \
- return sgb_##KIND##_util_map< X##_property<T>, T&>(); \
- } \
- template <class T> \
- inline sgb_##KIND##_util_map< X##_property<T>, const T&> \
- get(X##_property<T>, const sgb_graph_ptr&) { \
- return sgb_##KIND##_util_map< X##_property<T>, const T&>(); \
- } \
- template <class T> \
- inline sgb_##KIND##_util_map< X##_property<T>, const T&> \
- get(X##_property<T>, const sgb_const_graph_ptr&) { \
- return sgb_##KIND##_util_map< X##_property<T>, const T&>(); \
- } \
- template <class T, class Key> \
- inline typename \
- sgb_##KIND##_util_map< X##_property<T>, const T&>::value_type \
- get(X##_property<T>, const sgb_graph_ptr&, const Key& key) { \
- return sgb_##KIND##_util_map< X##_property<T>, const T&>()[key]; \
- } \
- template <class T, class Key> \
- inline typename \
- sgb_##KIND##_util_map< X##_property<T>, const T&>::value_type \
- get(X##_property<T>, const sgb_const_graph_ptr&, const Key& key) { \
- return sgb_##KIND##_util_map< X##_property<T>, const T&>()[key]; \
- } \
- template <class T, class Key, class Value> \
- inline void \
- put(X##_property<T>, sgb_graph_ptr&, const Key& key, const Value& value) { \
- sgb_##KIND##_util_map< X##_property<T>, T&>()[key] = value; \
- }
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#define SGB_UTIL_ACCESSOR_TYPE(KIND,TAG,TYPE) \
- inline sgb_##KIND##_util_map< TAG<TYPE>, TYPE& > \
- get(TAG<TYPE>, sgb_graph_ptr&) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, TYPE& >(); \
- } \
- inline sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& > \
- get(TAG<TYPE>, const sgb_graph_ptr&) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >(); \
- } \
- inline sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& > \
- get(TAG<TYPE>, const sgb_const_graph_ptr&) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >(); \
- } \
- template <class Key> \
- inline typename sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >::value_type \
- get(TAG<TYPE>, const sgb_graph_ptr&, const Key& key) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >()[key]; \
- } \
- template <class Key> \
- inline typename sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >::value_type \
- get(TAG<TYPE>, const sgb_const_graph_ptr&, const Key& key) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >()[key]; \
- } \
- template <class Key, class Value> \
- inline void \
- put(TAG<TYPE>, sgb_graph_ptr&, const Key& key, const Value& value) { \
- sgb_##KIND##_util_map< TAG<TYPE>, TYPE& >()[key] = value; \
- } \
- template <> struct property_map<sgb_graph_ptr, TAG<TYPE> > { \
- typedef sgb_##KIND##_util_map< TAG<TYPE>, TYPE&> type; \
- typedef sgb_##KIND##_util_map< TAG<TYPE>, const TYPE&> const_type; \
- }
-
-#define SGB_UTIL_ACCESSOR(KIND,TAG) \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, Vertex*); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, Arc*); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, sgb_graph_ptr); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, long); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, char*);
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- SGB_UTIL_ACCESSOR(vertex, u)
- SGB_UTIL_ACCESSOR(vertex, v)
- SGB_UTIL_ACCESSOR(vertex, w)
- SGB_UTIL_ACCESSOR(vertex, x)
- SGB_UTIL_ACCESSOR(vertex, y)
- SGB_UTIL_ACCESSOR(vertex, z)
-
- SGB_UTIL_ACCESSOR(edge, a)
- SGB_UTIL_ACCESSOR(edge, b)
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_SGB_GRAPH_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_STRONG_COMPONENTS_HPP
-#define BOOST_GRAPH_STRONG_COMPONENTS_HPP
-
-#include <stack>
-#include <boost/config.hpp>
-#include <boost/graph/depth_first_search.hpp>
-#include <boost/type_traits/conversion_traits.hpp>
-#include <boost/static_assert.hpp>
-
-namespace boost {
-
- //==========================================================================
- // This is Tarjan's algorithm for strongly connected components
- // from his paper "Depth first search and linear graph algorithms".
- // It calculates the components in a single application of DFS.
- // We implement the algorithm as a dfs-visitor.
-
- namespace detail {
-
- template <typename ComponentMap, typename RootMap, typename DiscoverTime,
- typename Stack>
- class tarjan_scc_visitor : public dfs_visitor<>
- {
- typedef typename property_traits<ComponentMap>::value_type comp_type;
- typedef typename property_traits<DiscoverTime>::value_type time_type;
- public:
- tarjan_scc_visitor(ComponentMap comp_map, RootMap r, DiscoverTime d,
- comp_type& c_, Stack& s_)
- : c(c_), comp(comp_map), root(r), discover_time(d),
- dfs_time(time_type()), s(s_) { }
-
- template <typename Graph>
- void discover_vertex(typename graph_traits<Graph>::vertex_descriptor v,
- const Graph&) {
- put(root, v, v);
- put(comp, v, (std::numeric_limits<comp_type>::max)());
- put(discover_time, v, dfs_time++);
- s.push(v);
- }
- template <typename Graph>
- void finish_vertex(typename graph_traits<Graph>::vertex_descriptor v,
- const Graph& g) {
- typename graph_traits<Graph>::vertex_descriptor w;
- typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
- w = target(*ei, g);
- if (get(comp, w) == (std::numeric_limits<comp_type>::max)())
- put(root, v, this->min_discover_time(get(root,v), get(root,w)));
- }
- if (get(root, v) == v) {
- do {
- w = s.top(); s.pop();
- put(comp, w, c);
- } while (w != v);
- ++c;
- }
- }
- private:
- template <typename Vertex>
- Vertex min_discover_time(Vertex u, Vertex v) {
- return get(discover_time, u) < get(discover_time,v) ? u : v;
- }
-
- comp_type& c;
- ComponentMap comp;
- RootMap root;
- DiscoverTime discover_time;
- time_type dfs_time;
- Stack& s;
- };
-
- template <class Graph, class ComponentMap, class RootMap,
- class DiscoverTime, class P, class T, class R>
- typename property_traits<ComponentMap>::value_type
- strong_components_impl
- (const Graph& g, // Input
- ComponentMap comp, // Output
- // Internal record keeping
- RootMap root,
- DiscoverTime discover_time,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadWritePropertyMapConcept<ComponentMap, Vertex> >();
- function_requires< ReadWritePropertyMapConcept<RootMap, Vertex> >();
- typedef typename property_traits<RootMap>::value_type RootV;
- function_requires< ConvertibleConcept<RootV, Vertex> >();
- function_requires< ReadWritePropertyMapConcept<DiscoverTime, Vertex> >();
-
- typename property_traits<ComponentMap>::value_type total = 0;
-
- std::stack<Vertex> s;
- detail::tarjan_scc_visitor<ComponentMap, RootMap, DiscoverTime,
- std::stack<Vertex> >
- vis(comp, root, discover_time, total, s);
- depth_first_search(g, params.visitor(vis));
- return total;
- }
-
- //-------------------------------------------------------------------------
- // The dispatch functions handle the defaults for the rank and discover
- // time property maps.
- // dispatch with class specialization to avoid VC++ bug
-
- template <class DiscoverTimeMap>
- struct strong_comp_dispatch2 {
- template <class Graph, class ComponentMap, class RootMap, class P, class T, class R>
- inline static typename property_traits<ComponentMap>::value_type
- apply(const Graph& g,
- ComponentMap comp,
- RootMap r_map,
- const bgl_named_params<P, T, R>& params,
- DiscoverTimeMap time_map)
- {
- return strong_components_impl(g, comp, r_map, time_map, params);
- }
- };
-
-
- template <>
- struct strong_comp_dispatch2<detail::error_property_not_found> {
- template <class Graph, class ComponentMap, class RootMap,
- class P, class T, class R>
- inline static typename property_traits<ComponentMap>::value_type
- apply(const Graph& g,
- ComponentMap comp,
- RootMap r_map,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- size_type n = num_vertices(g) > 0 ? num_vertices(g) : 1;
- std::vector<size_type> time_vec(n);
- return strong_components_impl
- (g, comp, r_map,
- make_iterator_property_map(time_vec.begin(), choose_const_pmap
- (get_param(params, vertex_index),
- g, vertex_index), time_vec[0]),
- params);
- }
- };
-
- template <class Graph, class ComponentMap, class RootMap,
- class P, class T, class R, class DiscoverTimeMap>
- inline typename property_traits<ComponentMap>::value_type
- scc_helper2(const Graph& g,
- ComponentMap comp,
- RootMap r_map,
- const bgl_named_params<P, T, R>& params,
- DiscoverTimeMap time_map)
- {
- return strong_comp_dispatch2<DiscoverTimeMap>::apply(g, comp, r_map, params, time_map);
- }
-
- template <class RootMap>
- struct strong_comp_dispatch1 {
-
- template <class Graph, class ComponentMap, class P, class T, class R>
- inline static typename property_traits<ComponentMap>::value_type
- apply(const Graph& g,
- ComponentMap comp,
- const bgl_named_params<P, T, R>& params,
- RootMap r_map)
- {
- return scc_helper2(g, comp, r_map, params, get_param(params, vertex_discover_time));
- }
- };
- template <>
- struct strong_comp_dispatch1<detail::error_property_not_found> {
-
- template <class Graph, class ComponentMap,
- class P, class T, class R>
- inline static typename property_traits<ComponentMap>::value_type
- apply(const Graph& g,
- ComponentMap comp,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typename std::vector<Vertex>::size_type
- n = num_vertices(g) > 0 ? num_vertices(g) : 1;
- std::vector<Vertex> root_vec(n);
- return scc_helper2
- (g, comp,
- make_iterator_property_map(root_vec.begin(), choose_const_pmap
- (get_param(params, vertex_index),
- g, vertex_index), root_vec[0]),
- params,
- get_param(params, vertex_discover_time));
- }
- };
-
- template <class Graph, class ComponentMap, class RootMap,
- class P, class T, class R>
- inline typename property_traits<ComponentMap>::value_type
- scc_helper1(const Graph& g,
- ComponentMap comp,
- const bgl_named_params<P, T, R>& params,
- RootMap r_map)
- {
- return detail::strong_comp_dispatch1<RootMap>::apply(g, comp, params,
- r_map);
- }
-
- } // namespace detail
-
- template <class Graph, class ComponentMap,
- class P, class T, class R>
- inline typename property_traits<ComponentMap>::value_type
- strong_components(const Graph& g, ComponentMap comp,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename graph_traits<Graph>::directed_category DirCat;
- BOOST_STATIC_ASSERT((is_convertible<DirCat*, directed_tag*>::value == true));
- return detail::scc_helper1(g, comp, params,
- get_param(params, vertex_root_t()));
- }
-
- template <class Graph, class ComponentMap>
- inline typename property_traits<ComponentMap>::value_type
- strong_components(const Graph& g, ComponentMap comp)
- {
- typedef typename graph_traits<Graph>::directed_category DirCat;
- BOOST_STATIC_ASSERT((is_convertible<DirCat*, directed_tag*>::value == true));
- bgl_named_params<int, int> params(0);
- return strong_components(g, comp, params);
- }
-
- template <typename Graph, typename ComponentMap, typename ComponentLists>
- void build_component_lists
- (const Graph& g,
- typename graph_traits<Graph>::vertices_size_type num_scc,
- ComponentMap component_number,
- ComponentLists& components)
- {
- components.resize(num_scc);
- typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
- components[component_number[*vi]].push_back(*vi);
- }
-
-
-} // namespace boost
-
-#include <queue>
-#include <vector>
-#include <boost/graph/transpose_graph.hpp>
-#include <boost/pending/indirect_cmp.hpp>
-#include <boost/graph/connected_components.hpp> // for components_recorder
-
-namespace boost {
-
- //==========================================================================
- // This is the version of strongly connected components from
- // "Intro. to Algorithms" by Cormen, Leiserson, Rivest, which was
- // adapted from "Data Structure and Algorithms" by Aho, Hopcroft,
- // and Ullman, who credit the algorithm to S.R. Kosaraju and M. Sharir.
- // The algorithm is based on computing DFS forests the graph
- // and its transpose.
-
- // This algorithm is slower than Tarjan's by a constant factor, uses
- // more memory, and puts more requirements on the graph type.
-
- template <class Graph, class DFSVisitor, class ComponentsMap,
- class DiscoverTime, class FinishTime,
- class ColorMap>
- typename property_traits<ComponentsMap>::value_type
- kosaraju_strong_components(Graph& G, ComponentsMap c,
- FinishTime finish_time, ColorMap color)
- {
- function_requires< MutableGraphConcept<Graph> >();
- // ...
-
- typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
- typename property_traits<FinishTime>::value_type time = 0;
- depth_first_search
- (G, make_dfs_visitor(stamp_times(finish_time, time, on_finish_vertex())),
- color);
-
- Graph G_T(num_vertices(G));
- transpose_graph(G, G_T);
-
- typedef typename property_traits<ComponentsMap>::value_type count_type;
-
- count_type c_count(0);
- detail::components_recorder<ComponentsMap>
- vis(c, c_count);
-
- // initialize G_T
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(G_T); ui != ui_end; ++ui)
- put(color, *ui, Color::white());
-
- typedef typename property_traits<FinishTime>::value_type D;
- typedef indirect_cmp< FinishTime, std::less<D> > Compare;
-
- Compare fl(finish_time);
- std::priority_queue<Vertex, std::vector<Vertex>, Compare > Q(fl);
-
- typename graph_traits<Graph>::vertex_iterator i, j, iend, jend;
- tie(i, iend) = vertices(G_T);
- tie(j, jend) = vertices(G);
- for ( ; i != iend; ++i, ++j) {
- put(finish_time, *i, get(finish_time, *j));
- Q.push(*i);
- }
-
- while ( !Q.empty() ) {
- Vertex u = Q.top();
- Q.pop();
- if (get(color, u) == Color::white()) {
- depth_first_visit(G_T, u, vis, color);
- ++c_count;
- }
- }
- return c_count;
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_STRONG_COMPONENTS_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 2001 University of Notre Dame.
-// Authors: Jeremy G. Siek and Lie-Quan Lee
-//
-// Distributed under the 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_SUBGRAPH_HPP
-#define BOOST_SUBGRAPH_HPP
-
-// UNDER CONSTRUCTION
-
-#include <boost/config.hpp>
-#include <list>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/iterator/indirect_iterator.hpp>
-
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost {
-
- struct subgraph_tag { };
-
- // Invariants of an induced subgraph:
- // - If vertex u is in subgraph g, then u must be in g.parent().
- // - If edge e is in subgraph g, then e must be in g.parent().
- // - If edge e=(u,v) is in the root graph, then edge e
- // is also in any subgraph that contains both vertex u and v.
-
- // The Graph template parameter must have a vertex_index
- // and edge_index internal property. It is assumed that
- // the vertex indices are assigned automatically by the
- // graph during a call to add_vertex(). It is not
- // assumed that the edge vertices are assigned automatically,
- // they are explicitly assigned here.
-
- template <typename Graph>
- class subgraph {
- typedef graph_traits<Graph> Traits;
- typedef std::list<subgraph<Graph>*> ChildrenList;
- public:
- // Graph requirements
- typedef typename Traits::vertex_descriptor vertex_descriptor;
- typedef typename Traits::edge_descriptor edge_descriptor;
- typedef typename Traits::directed_category directed_category;
- typedef typename Traits::edge_parallel_category edge_parallel_category;
- typedef typename Traits::traversal_category traversal_category;
-
- static vertex_descriptor null_vertex()
- {
- return Traits::null_vertex();
- }
-
-
- // IncidenceGraph requirements
- typedef typename Traits::out_edge_iterator out_edge_iterator;
- typedef typename Traits::degree_size_type degree_size_type;
-
- // AdjacencyGraph requirements
- typedef typename Traits::adjacency_iterator adjacency_iterator;
-
- // VertexListGraph requirements
- typedef typename Traits::vertex_iterator vertex_iterator;
- typedef typename Traits::vertices_size_type vertices_size_type;
-
- // EdgeListGraph requirements
- typedef typename Traits::edge_iterator edge_iterator;
- typedef typename Traits::edges_size_type edges_size_type;
-
- typedef typename Traits::in_edge_iterator in_edge_iterator;
-
- typedef typename Graph::edge_property_type edge_property_type;
- typedef typename Graph::vertex_property_type vertex_property_type;
- typedef subgraph_tag graph_tag;
- typedef Graph graph_type;
- typedef typename Graph::graph_property_type graph_property_type;
-
- // Constructors
-
- // Create the main graph, the root of the subgraph tree
- subgraph()
- : m_parent(0), m_edge_counter(0)
- { }
- subgraph(const graph_property_type& p)
- : m_graph(p), m_parent(0), m_edge_counter(0)
- { }
- subgraph(vertices_size_type n,
- const graph_property_type& p = graph_property_type())
- : m_graph(n, p), m_parent(0), m_edge_counter(0), m_global_vertex(n)
- {
- typename Graph::vertex_iterator v, v_end;
- vertices_size_type i = 0;
- for (tie(v, v_end) = vertices(m_graph); v != v_end; ++v)
- m_global_vertex[i++] = *v;
- }
-
- // copy constructor
- subgraph(const subgraph& x)
- : m_graph(x.m_graph), m_parent(x.m_parent),
- m_edge_counter(x.m_edge_counter),
- m_global_vertex(x.m_global_vertex),
- m_global_edge(x.m_global_edge)
- {
- // Do a deep copy
- for (typename ChildrenList::const_iterator i = x.m_children.begin();
- i != x.m_children.end(); ++i)
- m_children.push_back(new subgraph<Graph>( **i ));
- }
-
-
- ~subgraph() {
- for (typename ChildrenList::iterator i = m_children.begin();
- i != m_children.end(); ++i)
- delete *i;
- }
-
-
- // Create a subgraph
- subgraph<Graph>& create_subgraph() {
- m_children.push_back(new subgraph<Graph>());
- m_children.back()->m_parent = this;
- return *m_children.back();
- }
-
- // Create a subgraph with the specified vertex set.
- template <typename VertexIterator>
- subgraph<Graph>& create_subgraph(VertexIterator first,
- VertexIterator last)
- {
- m_children.push_back(new subgraph<Graph>());
- m_children.back()->m_parent = this;
- for (; first != last; ++first)
- add_vertex(*first, *m_children.back());
- return *m_children.back();
- }
-
- // local <-> global descriptor conversion functions
- vertex_descriptor local_to_global(vertex_descriptor u_local) const
- {
- return m_global_vertex[u_local];
- }
- vertex_descriptor global_to_local(vertex_descriptor u_global) const
- {
- vertex_descriptor u_local; bool in_subgraph;
- tie(u_local, in_subgraph) = this->find_vertex(u_global);
- assert(in_subgraph == true);
- return u_local;
- }
- edge_descriptor local_to_global(edge_descriptor e_local) const
- {
- return m_global_edge[get(get(edge_index, m_graph), e_local)];
- }
- edge_descriptor global_to_local(edge_descriptor e_global) const
- {
- return
- (*m_local_edge.find(get(get(edge_index, root().m_graph), e_global))).second;
- }
-
- // Is vertex u (of the root graph) contained in this subgraph?
- // If so, return the matching local vertex.
- std::pair<vertex_descriptor, bool>
- find_vertex(vertex_descriptor u_global) const
- {
- typename std::map<vertex_descriptor, vertex_descriptor>::const_iterator
- i = m_local_vertex.find(u_global);
- bool valid = i != m_local_vertex.end();
- return std::make_pair((valid ? (*i).second : null_vertex()), valid);
- }
-
- // Return the parent graph.
- subgraph& parent() { return *m_parent; }
- const subgraph& parent() const { return *m_parent; }
-
- bool is_root() const { return m_parent == 0; }
-
- // Return the root graph of the subgraph tree.
- subgraph& root() {
- if (this->is_root())
- return *this;
- else
- return m_parent->root();
- }
- const subgraph& root() const {
- if (this->is_root())
- return *this;
- else
- return m_parent->root();
- }
-
- // Return the children subgraphs of this graph/subgraph.
- // Use a list of pointers because the VC++ std::list doesn't like
- // storing incomplete type.
- typedef indirect_iterator<
- typename ChildrenList::const_iterator
- , subgraph<Graph>
- , std::bidirectional_iterator_tag
- >
- children_iterator;
-
- typedef indirect_iterator<
- typename ChildrenList::const_iterator
- , subgraph<Graph> const
- , std::bidirectional_iterator_tag
- >
- const_children_iterator;
-
- std::pair<const_children_iterator, const_children_iterator>
- children() const
- {
- return std::make_pair(const_children_iterator(m_children.begin()),
- const_children_iterator(m_children.end()));
- }
-
- std::pair<children_iterator, children_iterator>
- children()
- {
- return std::make_pair(children_iterator(m_children.begin()),
- children_iterator(m_children.end()));
- }
-
- std::size_t num_children() const { return m_children.size(); }
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- // Bundled properties support
- template<typename Descriptor>
- typename graph::detail::bundled_result<Graph, Descriptor>::type&
- operator[](Descriptor x)
- {
- if (m_parent == 0) return m_graph[x];
- else return root().m_graph[local_to_global(x)];
- }
-
- template<typename Descriptor>
- typename graph::detail::bundled_result<Graph, Descriptor>::type const&
- operator[](Descriptor x) const
- {
- if (m_parent == 0) return m_graph[x];
- else return root().m_graph[local_to_global(x)];
- }
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-
- // private:
- typedef typename property_map<Graph, edge_index_t>::type EdgeIndexMap;
- typedef typename property_traits<EdgeIndexMap>::value_type edge_index_type;
- BOOST_STATIC_ASSERT((!is_same<edge_index_type,
- boost::detail::error_property_not_found>::value));
-
- Graph m_graph;
- subgraph<Graph>* m_parent;
- edge_index_type m_edge_counter; // for generating unique edge indices
- ChildrenList m_children;
- std::vector<vertex_descriptor> m_global_vertex; // local -> global
- std::map<vertex_descriptor, vertex_descriptor> m_local_vertex; // global -> local
- std::vector<edge_descriptor> m_global_edge; // local -> global
- std::map<edge_index_type, edge_descriptor> m_local_edge; // global -> local
-
- edge_descriptor
- local_add_edge(vertex_descriptor u_local, vertex_descriptor v_local,
- edge_descriptor e_global)
- {
- edge_descriptor e_local;
- bool inserted;
- tie(e_local, inserted) = add_edge(u_local, v_local, m_graph);
- put(edge_index, m_graph, e_local, m_edge_counter++);
- m_global_edge.push_back(e_global);
- m_local_edge[get(get(edge_index, this->root()), e_global)] = e_local;
- return e_local;
- }
-
- };
-
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template<typename Graph>
- struct vertex_bundle_type<subgraph<Graph> > : vertex_bundle_type<Graph> { };
-
- template<typename Graph>
- struct edge_bundle_type<subgraph<Graph> > : edge_bundle_type<Graph> { };
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
-
- //===========================================================================
- // Functions special to the Subgraph Class
-
- template <typename G>
- typename subgraph<G>::vertex_descriptor
- add_vertex(typename subgraph<G>::vertex_descriptor u_global,
- subgraph<G>& g)
- {
- assert(!g.is_root());
- typename subgraph<G>::vertex_descriptor u_local, v_global, uu_global;
- typename subgraph<G>::edge_descriptor e_global;
-
- u_local = add_vertex(g.m_graph);
- g.m_global_vertex.push_back(u_global);
- g.m_local_vertex[u_global] = u_local;
-
- subgraph<G>& r = g.root();
-
- // remember edge global and local maps
- {
- typename subgraph<G>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u_global, r);
- ei != ei_end; ++ei) {
- e_global = *ei;
- v_global = target(e_global, r);
- if (g.find_vertex(v_global).second == true)
- g.local_add_edge(u_local, g.global_to_local(v_global), e_global);
- }
- }
- if (is_directed(g)) { // not necessary for undirected graph
- typename subgraph<G>::vertex_iterator vi, vi_end;
- typename subgraph<G>::out_edge_iterator ei, ei_end;
- for (tie(vi, vi_end) = vertices(r); vi != vi_end; ++vi) {
- v_global = *vi;
- if (g.find_vertex(v_global).second)
- for (tie(ei, ei_end) = out_edges(*vi, r); ei != ei_end; ++ei) {
- e_global = *ei;
- uu_global = target(e_global, r);
- if (uu_global == u_global && g.find_vertex(v_global).second)
- g.local_add_edge(g.global_to_local(v_global), u_local, e_global);
- }
- }
- }
-
- return u_local;
- }
-
- //===========================================================================
- // Functions required by the IncidenceGraph concept
-
- template <typename G>
- std::pair<typename graph_traits<G>::out_edge_iterator,
- typename graph_traits<G>::out_edge_iterator>
- out_edges(typename graph_traits<G>::vertex_descriptor u_local,
- const subgraph<G>& g)
- { return out_edges(u_local, g.m_graph); }
-
- template <typename G>
- typename graph_traits<G>::degree_size_type
- out_degree(typename graph_traits<G>::vertex_descriptor u_local,
- const subgraph<G>& g)
- { return out_degree(u_local, g.m_graph); }
-
- template <typename G>
- typename graph_traits<G>::vertex_descriptor
- source(typename graph_traits<G>::edge_descriptor e_local,
- const subgraph<G>& g)
- { return source(e_local, g.m_graph); }
-
- template <typename G>
- typename graph_traits<G>::vertex_descriptor
- target(typename graph_traits<G>::edge_descriptor e_local,
- const subgraph<G>& g)
- { return target(e_local, g.m_graph); }
-
- //===========================================================================
- // Functions required by the BidirectionalGraph concept
-
- template <typename G>
- std::pair<typename graph_traits<G>::in_edge_iterator,
- typename graph_traits<G>::in_edge_iterator>
- in_edges(typename graph_traits<G>::vertex_descriptor u_local,
- const subgraph<G>& g)
- { return in_edges(u_local, g.m_graph); }
-
- template <typename G>
- typename graph_traits<G>::degree_size_type
- in_degree(typename graph_traits<G>::vertex_descriptor u_local,
- const subgraph<G>& g)
- { return in_degree(u_local, g.m_graph); }
-
- template <typename G>
- typename graph_traits<G>::degree_size_type
- degree(typename graph_traits<G>::vertex_descriptor u_local,
- const subgraph<G>& g)
- { return degree(u_local, g.m_graph); }
-
- //===========================================================================
- // Functions required by the AdjacencyGraph concept
-
- template <typename G>
- std::pair<typename subgraph<G>::adjacency_iterator,
- typename subgraph<G>::adjacency_iterator>
- adjacent_vertices(typename subgraph<G>::vertex_descriptor u_local,
- const subgraph<G>& g)
- { return adjacent_vertices(u_local, g.m_graph); }
-
- //===========================================================================
- // Functions required by the VertexListGraph concept
-
- template <typename G>
- std::pair<typename subgraph<G>::vertex_iterator,
- typename subgraph<G>::vertex_iterator>
- vertices(const subgraph<G>& g)
- { return vertices(g.m_graph); }
-
- template <typename G>
- typename subgraph<G>::vertices_size_type
- num_vertices(const subgraph<G>& g)
- { return num_vertices(g.m_graph); }
-
- //===========================================================================
- // Functions required by the EdgeListGraph concept
-
- template <typename G>
- std::pair<typename subgraph<G>::edge_iterator,
- typename subgraph<G>::edge_iterator>
- edges(const subgraph<G>& g)
- { return edges(g.m_graph); }
-
- template <typename G>
- typename subgraph<G>::edges_size_type
- num_edges(const subgraph<G>& g)
- { return num_edges(g.m_graph); }
-
- //===========================================================================
- // Functions required by the AdjacencyMatrix concept
-
- template <typename G>
- std::pair<typename subgraph<G>::edge_descriptor, bool>
- edge(typename subgraph<G>::vertex_descriptor u_local,
- typename subgraph<G>::vertex_descriptor v_local,
- const subgraph<G>& g)
- {
- return edge(u_local, v_local, g.m_graph);
- }
-
- //===========================================================================
- // Functions required by the MutableGraph concept
-
- namespace detail {
-
- template <typename Vertex, typename Edge, typename Graph>
- void add_edge_recur_down
- (Vertex u_global, Vertex v_global, Edge e_global, subgraph<Graph>& g);
-
- template <typename Vertex, typename Edge, typename Children, typename G>
- void children_add_edge(Vertex u_global, Vertex v_global, Edge e_global,
- Children& c, subgraph<G>* orig)
- {
- for (typename Children::iterator i = c.begin(); i != c.end(); ++i)
- if ((*i)->find_vertex(u_global).second
- && (*i)->find_vertex(v_global).second)
- add_edge_recur_down(u_global, v_global, e_global, **i, orig);
- }
-
- template <typename Vertex, typename Edge, typename Graph>
- void add_edge_recur_down
- (Vertex u_global, Vertex v_global, Edge e_global, subgraph<Graph>& g,
- subgraph<Graph>* orig)
- {
- if (&g != orig ) {
- // add local edge only if u_global and v_global are in subgraph g
- Vertex u_local, v_local;
- bool u_in_subgraph, v_in_subgraph;
- tie(u_local, u_in_subgraph) = g.find_vertex(u_global);
- tie(v_local, v_in_subgraph) = g.find_vertex(v_global);
- if (u_in_subgraph && v_in_subgraph)
- g.local_add_edge(u_local, v_local, e_global);
- }
- children_add_edge(u_global, v_global, e_global, g.m_children, orig);
- }
-
- template <typename Vertex, typename Graph>
- std::pair<typename subgraph<Graph>::edge_descriptor, bool>
- add_edge_recur_up(Vertex u_global, Vertex v_global,
- const typename Graph::edge_property_type& ep,
- subgraph<Graph>& g, subgraph<Graph>* orig)
- {
- if (g.is_root()) {
- typename subgraph<Graph>::edge_descriptor e_global;
- bool inserted;
- tie(e_global, inserted) = add_edge(u_global, v_global, ep, g.m_graph);
- put(edge_index, g.m_graph, e_global, g.m_edge_counter++);
- g.m_global_edge.push_back(e_global);
- children_add_edge(u_global, v_global, e_global, g.m_children, orig);
- return std::make_pair(e_global, inserted);
- } else
- return add_edge_recur_up(u_global, v_global, ep, *g.m_parent, orig);
- }
-
- } // namespace detail
-
- // Add an edge to the subgraph g, specified by the local vertex
- // descriptors u and v. In addition, the edge will be added to any
- // other subgraphs which contain vertex descriptors u and v.
-
- template <typename G>
- std::pair<typename subgraph<G>::edge_descriptor, bool>
- add_edge(typename subgraph<G>::vertex_descriptor u_local,
- typename subgraph<G>::vertex_descriptor v_local,
- const typename G::edge_property_type& ep,
- subgraph<G>& g)
- {
- if (g.is_root()) // u_local and v_local are really global
- return detail::add_edge_recur_up(u_local, v_local, ep, g, &g);
- else {
- typename subgraph<G>::edge_descriptor e_local, e_global;
- bool inserted;
- tie(e_global, inserted) = detail::add_edge_recur_up
- (g.local_to_global(u_local), g.local_to_global(v_local), ep, g, &g);
- e_local = g.local_add_edge(u_local, v_local, e_global);
- return std::make_pair(e_local, inserted);
- }
- }
-
- template <typename G>
- std::pair<typename subgraph<G>::edge_descriptor, bool>
- add_edge(typename subgraph<G>::vertex_descriptor u,
- typename subgraph<G>::vertex_descriptor v,
- subgraph<G>& g)
- {
- typename G::edge_property_type ep;
- return add_edge(u, v, ep, g);
- }
-
- namespace detail {
-
- //-------------------------------------------------------------------------
- // implementation of remove_edge(u,v,g)
-
- template <typename Vertex, typename Graph>
- void remove_edge_recur_down(Vertex u_global, Vertex v_global,
- subgraph<Graph>& g);
-
- template <typename Vertex, typename Children>
- void children_remove_edge(Vertex u_global, Vertex v_global,
- Children& c)
- {
- for (typename Children::iterator i = c.begin(); i != c.end(); ++i)
- if ((*i)->find_vertex(u_global).second
- && (*i)->find_vertex(v_global).second)
- remove_edge_recur_down(u_global, v_global, **i);
- }
-
- template <typename Vertex, typename Graph>
- void remove_edge_recur_down(Vertex u_global, Vertex v_global,
- subgraph<Graph>& g)
- {
- Vertex u_local, v_local;
- u_local = g.m_local_vertex[u_global];
- v_local = g.m_local_vertex[v_global];
- remove_edge(u_local, v_local, g.m_graph);
- children_remove_edge(u_global, v_global, g.m_children);
- }
-
- template <typename Vertex, typename Graph>
- void remove_edge_recur_up(Vertex u_global, Vertex v_global,
- subgraph<Graph>& g)
- {
- if (g.is_root()) {
- remove_edge(u_global, v_global, g.m_graph);
- children_remove_edge(u_global, v_global, g.m_children);
- } else
- remove_edge_recur_up(u_global, v_global, *g.m_parent);
- }
-
- //-------------------------------------------------------------------------
- // implementation of remove_edge(e,g)
-
- template <typename Edge, typename Graph>
- void remove_edge_recur_down(Edge e_global, subgraph<Graph>& g);
-
- template <typename Edge, typename Children>
- void children_remove_edge(Edge e_global, Children& c)
- {
- for (typename Children::iterator i = c.begin(); i != c.end(); ++i)
- if ((*i)->find_vertex(source(e_global, **i)).second
- && (*i)->find_vertex(target(e_global, **i)).second)
- remove_edge_recur_down(source(e_global, **i),
- target(e_global, **i), **i);
- }
-
- template <typename Edge, typename Graph>
- void remove_edge_recur_down(Edge e_global, subgraph<Graph>& g)
- {
- remove_edge(g.global_to_local(e_global), g.m_graph);
- children_remove_edge(e_global, g.m_children);
- }
-
- template <typename Edge, typename Graph>
- void remove_edge_recur_up(Edge e_global, subgraph<Graph>& g)
- {
- if (g.is_root()) {
- remove_edge(e_global, g.m_graph);
- children_remove_edge(e_global, g.m_children);
- } else
- remove_edge_recur_up(e_global, *g.m_parent);
- }
-
- } // namespace detail
-
- template <typename G>
- void
- remove_edge(typename subgraph<G>::vertex_descriptor u_local,
- typename subgraph<G>::vertex_descriptor v_local,
- subgraph<G>& g)
- {
- if (g.is_root())
- detail::remove_edge_recur_up(u_local, v_local, g);
- else
- detail::remove_edge_recur_up(g.local_to_global(u_local),
- g.local_to_global(v_local), g);
- }
-
- template <typename G>
- void
- remove_edge(typename subgraph<G>::edge_descriptor e_local,
- subgraph<G>& g)
- {
- if (g.is_root())
- detail::remove_edge_recur_up(e_local, g);
- else
- detail::remove_edge_recur_up(g.local_to_global(e_local), g);
- }
-
- template <typename Predicate, typename G>
- void
- remove_edge_if(Predicate p, subgraph<G>& g)
- {
- // This is wrong...
- remove_edge_if(p, g.m_graph);
- }
-
- template <typename G>
- void
- clear_vertex(typename subgraph<G>::vertex_descriptor v_local,
- subgraph<G>& g)
- {
- // this is wrong...
- clear_vertex(v_local, g.m_graph);
- }
-
- namespace detail {
-
- template <typename G>
- typename subgraph<G>::vertex_descriptor
- add_vertex_recur_up(subgraph<G>& g)
- {
- typename subgraph<G>::vertex_descriptor u_local, u_global;
- if (g.is_root()) {
- u_global = add_vertex(g.m_graph);
- g.m_global_vertex.push_back(u_global);
- } else {
- u_global = add_vertex_recur_up(*g.m_parent);
- u_local = add_vertex(g.m_graph);
- g.m_global_vertex.push_back(u_global);
- g.m_local_vertex[u_global] = u_local;
- }
- return u_global;
- }
-
- } // namespace detail
-
- template <typename G>
- typename subgraph<G>::vertex_descriptor
- add_vertex(subgraph<G>& g)
- {
- typename subgraph<G>::vertex_descriptor u_local, u_global;
- if (g.is_root()) {
- u_global = add_vertex(g.m_graph);
- g.m_global_vertex.push_back(u_global);
- u_local = u_global;
- } else {
- u_global = detail::add_vertex_recur_up(g.parent());
- u_local = add_vertex(g.m_graph);
- g.m_global_vertex.push_back(u_global);
- g.m_local_vertex[u_global] = u_local;
- }
- return u_local;
- }
-
- template <typename G>
- void remove_vertex(typename subgraph<G>::vertex_descriptor u,
- subgraph<G>& g)
- {
- // UNDER CONSTRUCTION
- assert(false);
- }
-
-
- //===========================================================================
- // Functions required by the PropertyGraph concept
-
- template <typename GraphPtr, typename PropertyMap, typename Tag>
- class subgraph_global_property_map
- : public put_get_helper<
- typename property_traits<PropertyMap>::reference,
- subgraph_global_property_map<GraphPtr, PropertyMap, Tag> >
- {
- typedef property_traits<PropertyMap> Traits;
- public:
- typedef typename Traits::category category;
- typedef typename Traits::value_type value_type;
- typedef typename Traits::key_type key_type;
- typedef typename Traits::reference reference;
-
- subgraph_global_property_map() { }
-
- subgraph_global_property_map(GraphPtr g)
- : m_g(g) { }
-
- inline reference operator[](key_type e_local) const {
- PropertyMap pmap = get(Tag(), m_g->root().m_graph);
- if (m_g->m_parent == 0)
- return pmap[e_local];
- else
- return pmap[m_g->local_to_global(e_local)];
- }
- GraphPtr m_g;
- };
-
- template <typename GraphPtr, typename PropertyMap, typename Tag>
- class subgraph_local_property_map
- : public put_get_helper<
- typename property_traits<PropertyMap>::reference,
- subgraph_local_property_map<GraphPtr, PropertyMap, Tag> >
- {
- typedef property_traits<PropertyMap> Traits;
- public:
- typedef typename Traits::category category;
- typedef typename Traits::value_type value_type;
- typedef typename Traits::key_type key_type;
- typedef typename Traits::reference reference;
-
- subgraph_local_property_map() { }
-
- subgraph_local_property_map(GraphPtr g)
- : m_g(g) { }
-
- inline reference operator[](key_type e_local) const {
- PropertyMap pmap = get(Tag(), *m_g);
- return pmap[e_local];
- }
- GraphPtr m_g;
- };
-
- namespace detail {
-
- struct subgraph_any_pmap {
- template <class Tag, class SubGraph, class Property>
- class bind_ {
- typedef typename SubGraph::graph_type Graph;
- typedef SubGraph* SubGraphPtr;
- typedef const SubGraph* const_SubGraphPtr;
- typedef typename property_map<Graph, Tag>::type PMap;
- typedef typename property_map<Graph, Tag>::const_type const_PMap;
- public:
- typedef subgraph_global_property_map<SubGraphPtr, PMap, Tag> type;
- typedef subgraph_global_property_map<const_SubGraphPtr, const_PMap, Tag>
- const_type;
- };
- };
- struct subgraph_id_pmap {
- template <class Tag, class SubGraph, class Property>
- struct bind_ {
- typedef typename SubGraph::graph_type Graph;
- typedef SubGraph* SubGraphPtr;
- typedef const SubGraph* const_SubGraphPtr;
- typedef typename property_map<Graph, Tag>::type PMap;
- typedef typename property_map<Graph, Tag>::const_type const_PMap;
- public:
- typedef subgraph_local_property_map<SubGraphPtr, PMap, Tag> type;
- typedef subgraph_local_property_map<const_SubGraphPtr, const_PMap, Tag>
- const_type;
- };
- };
- template <class Tag>
- struct subgraph_choose_pmap_helper {
- typedef subgraph_any_pmap type;
- };
- template <>
- struct subgraph_choose_pmap_helper<vertex_index_t> {
- typedef subgraph_id_pmap type;
- };
- template <class Tag, class Graph, class Property>
- struct subgraph_choose_pmap {
- typedef typename subgraph_choose_pmap_helper<Tag>::type Helper;
- typedef typename Helper::template bind_<Tag, Graph, Property> Bind;
- typedef typename Bind::type type;
- typedef typename Bind::const_type const_type;
- };
- struct subgraph_property_generator {
- template <class SubGraph, class Property, class Tag>
- struct bind_ {
- typedef subgraph_choose_pmap<Tag, SubGraph, Property> Choice;
- typedef typename Choice::type type;
- typedef typename Choice::const_type const_type;
- };
- };
-
- } // namespace detail
-
- template <>
- struct vertex_property_selector<subgraph_tag> {
- typedef detail::subgraph_property_generator type;
- };
-
- template <>
- struct edge_property_selector<subgraph_tag> {
- typedef detail::subgraph_property_generator type;
- };
-
- template <typename G, typename Property>
- typename property_map< subgraph<G>, Property>::type
- get(Property, subgraph<G>& g)
- {
- typedef typename property_map< subgraph<G>, Property>::type PMap;
- return PMap(&g);
- }
-
- template <typename G, typename Property>
- typename property_map< subgraph<G>, Property>::const_type
- get(Property, const subgraph<G>& g)
- {
- typedef typename property_map< subgraph<G>, Property>::const_type PMap;
- return PMap(&g);
- }
-
- template <typename G, typename Property, typename Key>
- typename property_traits<
- typename property_map< subgraph<G>, Property>::const_type
- >::value_type
- get(Property, const subgraph<G>& g, const Key& k)
- {
- typedef typename property_map< subgraph<G>, Property>::const_type PMap;
- PMap pmap(&g);
- return pmap[k];
- }
-
- template <typename G, typename Property, typename Key, typename Value>
- void
- put(Property, subgraph<G>& g, const Key& k, const Value& val)
- {
- typedef typename property_map< subgraph<G>, Property>::type PMap;
- PMap pmap(&g);
- pmap[k] = val;
- }
-
- template <typename G, typename Tag>
- inline
- typename graph_property<G, Tag>::type&
- get_property(subgraph<G>& g, Tag tag) {
- return get_property(g.m_graph, tag);
- }
-
- template <typename G, typename Tag>
- inline
- const typename graph_property<G, Tag>::type&
- get_property(const subgraph<G>& g, Tag tag) {
- return get_property(g.m_graph, tag);
- }
-
- //===========================================================================
- // Miscellaneous Functions
-
- template <typename G>
- typename subgraph<G>::vertex_descriptor
- vertex(typename subgraph<G>::vertices_size_type n, const subgraph<G>& g)
- {
- return vertex(n, g.m_graph);
- }
-
-} // namespace boost
-
-#endif // BOOST_SUBGRAPH_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_TOPOLOGICAL_SORT_HPP
-#define BOOST_GRAPH_TOPOLOGICAL_SORT_HPP
-
-#include <boost/config.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/depth_first_search.hpp>
-#include <boost/graph/visitors.hpp>
-#include <boost/graph/exception.hpp>
-
-namespace boost {
-
-
- // Topological sort visitor
- //
- // This visitor merely writes the linear ordering into an
- // OutputIterator. The OutputIterator could be something like an
- // ostream_iterator, or it could be a back/front_insert_iterator.
- // Note that if it is a back_insert_iterator, the recorded order is
- // the reverse topological order. On the other hand, if it is a
- // front_insert_iterator, the recorded order is the topological
- // order.
- //
- template <typename OutputIterator>
- struct topo_sort_visitor : public dfs_visitor<>
- {
- topo_sort_visitor(OutputIterator _iter)
- : m_iter(_iter) { }
-
- template <typename Edge, typename Graph>
- void back_edge(const Edge& u, Graph&) { throw not_a_dag(); }
-
- template <typename Vertex, typename Graph>
- void finish_vertex(const Vertex& u, Graph&) { *m_iter++ = u; }
-
- OutputIterator m_iter;
- };
-
-
- // Topological Sort
- //
- // The topological sort algorithm creates a linear ordering
- // of the vertices such that if edge (u,v) appears in the graph,
- // then u comes before v in the ordering. The graph must
- // be a directed acyclic graph (DAG). The implementation
- // consists mainly of a call to depth-first search.
- //
-
- template <typename VertexListGraph, typename OutputIterator,
- typename P, typename T, typename R>
- void topological_sort(VertexListGraph& g, OutputIterator result,
- const bgl_named_params<P, T, R>& params)
- {
- typedef topo_sort_visitor<OutputIterator> TopoVisitor;
- depth_first_search(g, params.visitor(TopoVisitor(result)));
- }
-
- template <typename VertexListGraph, typename OutputIterator>
- void topological_sort(VertexListGraph& g, OutputIterator result)
- {
- topological_sort(g, result,
- bgl_named_params<int, buffer_param_t>(0)); // bogus
- }
-
-} // namespace boost
-
-#endif /*BOOST_GRAPH_TOPOLOGICAL_SORT_H*/
+++ /dev/null
-// Copyright (C) 2001 Vladimir Prus <ghost@cs.msu.su>
-// Copyright (C) 2001 Jeremy Siek <jsiek@cs.indiana.edu>
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// NOTE: this final is generated by libs/graph/doc/transitive_closure.w
-
-#ifndef BOOST_GRAPH_TRANSITIVE_CLOSURE_HPP
-#define BOOST_GRAPH_TRANSITIVE_CLOSURE_HPP
-
-#include <vector>
-#include <algorithm> // for std::min and std::max
-#include <functional>
-#include <boost/config.hpp>
-#include <boost/bind.hpp>
-#include <boost/graph/vector_as_graph.hpp>
-#include <boost/graph/strong_components.hpp>
-#include <boost/graph/topological_sort.hpp>
-#include <boost/graph/graph_concepts.hpp>
-#include <boost/graph/named_function_params.hpp>
-
-namespace boost
-{
-
- namespace detail
- {
- inline void
- union_successor_sets(const std::vector < std::size_t > &s1,
- const std::vector < std::size_t > &s2,
- std::vector < std::size_t > &s3)
- {
- BOOST_USING_STD_MIN();
- for (std::size_t k = 0; k < s1.size(); ++k)
- s3[k] = min BOOST_PREVENT_MACRO_SUBSTITUTION(s1[k], s2[k]);
- }
- } // namespace detail
-
- namespace detail
- {
- template < typename Container, typename ST = std::size_t,
- typename VT = typename Container::value_type >
- struct subscript_t:public std::unary_function < ST, VT >
- {
- typedef VT& result_type;
-
- subscript_t(Container & c):container(&c)
- {
- }
- VT & operator() (const ST & i) const
- {
- return (*container)[i];
- }
- protected:
- Container * container;
- };
- template < typename Container >
- subscript_t < Container > subscript(Container & c) {
- return subscript_t < Container > (c);
- }
- } // namespace detail
-
- template < typename Graph, typename GraphTC,
- typename G_to_TC_VertexMap,
- typename VertexIndexMap >
- void transitive_closure(const Graph & g, GraphTC & tc,
- G_to_TC_VertexMap g_to_tc_map,
- VertexIndexMap index_map)
- {
- if (num_vertices(g) == 0)
- return;
- typedef typename graph_traits < Graph >::vertex_descriptor vertex;
- typedef typename graph_traits < Graph >::edge_descriptor edge;
- typedef typename graph_traits < Graph >::vertex_iterator vertex_iterator;
- typedef typename property_traits < VertexIndexMap >::value_type size_type;
- typedef typename graph_traits <
- Graph >::adjacency_iterator adjacency_iterator;
-
- function_requires < VertexListGraphConcept < Graph > >();
- function_requires < AdjacencyGraphConcept < Graph > >();
- function_requires < VertexMutableGraphConcept < GraphTC > >();
- function_requires < EdgeMutableGraphConcept < GraphTC > >();
- function_requires < ReadablePropertyMapConcept < VertexIndexMap,
- vertex > >();
-
- typedef size_type cg_vertex;
- std::vector < cg_vertex > component_number_vec(num_vertices(g));
- iterator_property_map < cg_vertex *, VertexIndexMap, cg_vertex, cg_vertex& >
- component_number(&component_number_vec[0], index_map);
-
- int num_scc = strong_components(g, component_number,
- vertex_index_map(index_map));
-
- std::vector < std::vector < vertex > >components;
- build_component_lists(g, num_scc, component_number, components);
-
- typedef std::vector<std::vector<cg_vertex> > CG_t;
- CG_t CG(num_scc);
- for (cg_vertex s = 0; s < components.size(); ++s) {
- std::vector < cg_vertex > adj;
- for (size_type i = 0; i < components[s].size(); ++i) {
- vertex u = components[s][i];
- adjacency_iterator v, v_end;
- for (tie(v, v_end) = adjacent_vertices(u, g); v != v_end; ++v) {
- cg_vertex t = component_number[*v];
- if (s != t) // Avoid loops in the condensation graph
- adj.push_back(t);
- }
- }
- std::sort(adj.begin(), adj.end());
- typename std::vector<cg_vertex>::iterator di =
- std::unique(adj.begin(), adj.end());
- if (di != adj.end())
- adj.erase(di, adj.end());
- CG[s] = adj;
- }
-
- std::vector<cg_vertex> topo_order;
- std::vector<cg_vertex> topo_number(num_vertices(CG));
- topological_sort(CG, std::back_inserter(topo_order),
- vertex_index_map(identity_property_map()));
- std::reverse(topo_order.begin(), topo_order.end());
- size_type n = 0;
- for (typename std::vector<cg_vertex>::iterator iter = topo_order.begin();
- iter != topo_order.end(); ++iter)
- topo_number[*iter] = n++;
-
- for (size_type i = 0; i < num_vertices(CG); ++i)
- std::sort(CG[i].begin(), CG[i].end(),
- boost::bind(std::less<cg_vertex>(),
- boost::bind(detail::subscript(topo_number), _1),
- boost::bind(detail::subscript(topo_number), _2)));
-
- std::vector<std::vector<cg_vertex> > chains;
- {
- std::vector<cg_vertex> in_a_chain(num_vertices(CG));
- for (typename std::vector<cg_vertex>::iterator i = topo_order.begin();
- i != topo_order.end(); ++i) {
- cg_vertex v = *i;
- if (!in_a_chain[v]) {
- chains.resize(chains.size() + 1);
- std::vector<cg_vertex>& chain = chains.back();
- for (;;) {
- chain.push_back(v);
- in_a_chain[v] = true;
- typename graph_traits<CG_t>::adjacency_iterator adj_first, adj_last;
- tie(adj_first, adj_last) = adjacent_vertices(v, CG);
- typename graph_traits<CG_t>::adjacency_iterator next
- = std::find_if(adj_first, adj_last,
- std::not1(detail::subscript(in_a_chain)));
- if (next != adj_last)
- v = *next;
- else
- break; // end of chain, dead-end
-
- }
- }
- }
- }
- std::vector<size_type> chain_number(num_vertices(CG));
- std::vector<size_type> pos_in_chain(num_vertices(CG));
- for (size_type i = 0; i < chains.size(); ++i)
- for (size_type j = 0; j < chains[i].size(); ++j) {
- cg_vertex v = chains[i][j];
- chain_number[v] = i;
- pos_in_chain[v] = j;
- }
-
- cg_vertex inf = (std::numeric_limits< cg_vertex >::max)();
- std::vector<std::vector<cg_vertex> > successors(num_vertices(CG),
- std::vector<cg_vertex>
- (chains.size(), inf));
- for (typename std::vector<cg_vertex>::reverse_iterator
- i = topo_order.rbegin(); i != topo_order.rend(); ++i) {
- cg_vertex u = *i;
- typename graph_traits<CG_t>::adjacency_iterator adj, adj_last;
- for (tie(adj, adj_last) = adjacent_vertices(u, CG);
- adj != adj_last; ++adj) {
- cg_vertex v = *adj;
- if (topo_number[v] < successors[u][chain_number[v]]) {
- // Succ(u) = Succ(u) U Succ(v)
- detail::union_successor_sets(successors[u], successors[v],
- successors[u]);
- // Succ(u) = Succ(u) U {v}
- successors[u][chain_number[v]] = topo_number[v];
- }
- }
- }
-
- for (size_type i = 0; i < CG.size(); ++i)
- CG[i].clear();
- for (size_type i = 0; i < CG.size(); ++i)
- for (size_type j = 0; j < chains.size(); ++j) {
- size_type topo_num = successors[i][j];
- if (topo_num < inf) {
- cg_vertex v = topo_order[topo_num];
- for (size_type k = pos_in_chain[v]; k < chains[j].size(); ++k)
- CG[i].push_back(chains[j][k]);
- }
- }
-
-
- // Add vertices to the transitive closure graph
- typedef typename graph_traits < GraphTC >::vertex_descriptor tc_vertex;
- {
- vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
- g_to_tc_map[*i] = add_vertex(tc);
- }
- // Add edges between all the vertices in two adjacent SCCs
- typename graph_traits<CG_t>::vertex_iterator si, si_end;
- for (tie(si, si_end) = vertices(CG); si != si_end; ++si) {
- cg_vertex s = *si;
- typename graph_traits<CG_t>::adjacency_iterator i, i_end;
- for (tie(i, i_end) = adjacent_vertices(s, CG); i != i_end; ++i) {
- cg_vertex t = *i;
- for (size_type k = 0; k < components[s].size(); ++k)
- for (size_type l = 0; l < components[t].size(); ++l)
- add_edge(g_to_tc_map[components[s][k]],
- g_to_tc_map[components[t][l]], tc);
- }
- }
- // Add edges connecting all vertices in a SCC
- for (size_type i = 0; i < components.size(); ++i)
- if (components[i].size() > 1)
- for (size_type k = 0; k < components[i].size(); ++k)
- for (size_type l = 0; l < components[i].size(); ++l) {
- vertex u = components[i][k], v = components[i][l];
- add_edge(g_to_tc_map[u], g_to_tc_map[v], tc);
- }
-
- // Find loopbacks in the original graph.
- // Need to add it to transitive closure.
- {
- vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
- {
- adjacency_iterator ab, ae;
- for (boost::tie(ab, ae) = adjacent_vertices(*i, g); ab != ae; ++ab)
- {
- if (*ab == *i)
- if (components[component_number[*i]].size() == 1)
- add_edge(g_to_tc_map[*i], g_to_tc_map[*i], tc);
- }
- }
- }
- }
-
- template <typename Graph, typename GraphTC>
- void transitive_closure(const Graph & g, GraphTC & tc)
- {
- if (num_vertices(g) == 0)
- return;
- typedef typename property_map<Graph, vertex_index_t>::const_type
- VertexIndexMap;
- VertexIndexMap index_map = get(vertex_index, g);
-
- typedef typename graph_traits<GraphTC>::vertex_descriptor tc_vertex;
- std::vector<tc_vertex> to_tc_vec(num_vertices(g));
- iterator_property_map < tc_vertex *, VertexIndexMap, tc_vertex, tc_vertex&>
- g_to_tc_map(&to_tc_vec[0], index_map);
-
- transitive_closure(g, tc, g_to_tc_map, index_map);
- }
-
- namespace detail
- {
- template < typename Graph, typename GraphTC, typename G_to_TC_VertexMap,
- typename VertexIndexMap>
- void transitive_closure_dispatch
- (const Graph & g, GraphTC & tc,
- G_to_TC_VertexMap g_to_tc_map, VertexIndexMap index_map)
- {
- typedef typename graph_traits < GraphTC >::vertex_descriptor tc_vertex;
- typename std::vector < tc_vertex >::size_type
- n = is_default_param(g_to_tc_map) ? num_vertices(g) : 1;
- std::vector < tc_vertex > to_tc_vec(n);
-
- transitive_closure
- (g, tc,
- choose_param(g_to_tc_map, make_iterator_property_map
- (to_tc_vec.begin(), index_map, to_tc_vec[0])),
- index_map);
- }
- } // namespace detail
-
- template < typename Graph, typename GraphTC,
- typename P, typename T, typename R >
- void transitive_closure(const Graph & g, GraphTC & tc,
- const bgl_named_params < P, T, R > ¶ms)
- {
- if (num_vertices(g) == 0)
- return;
- detail::transitive_closure_dispatch
- (g, tc, get_param(params, orig_to_copy_t()),
- choose_const_pmap(get_param(params, vertex_index), g, vertex_index) );
- }
-
-
- template < typename G > void warshall_transitive_closure(G & g)
- {
- typedef typename graph_traits < G >::vertex_descriptor vertex;
- typedef typename graph_traits < G >::vertex_iterator vertex_iterator;
-
- function_requires < AdjacencyMatrixConcept < G > >();
- function_requires < EdgeMutableGraphConcept < G > >();
-
- // Matrix form:
- // for k
- // for i
- // if A[i,k]
- // for j
- // A[i,j] = A[i,j] | A[k,j]
- vertex_iterator ki, ke, ii, ie, ji, je;
- for (tie(ki, ke) = vertices(g); ki != ke; ++ki)
- for (tie(ii, ie) = vertices(g); ii != ie; ++ii)
- if (edge(*ii, *ki, g).second)
- for (tie(ji, je) = vertices(g); ji != je; ++ji)
- if (!edge(*ii, *ji, g).second && edge(*ki, *ji, g).second) {
- add_edge(*ii, *ji, g);
- }
- }
-
-
- template < typename G > void warren_transitive_closure(G & g)
- {
- using namespace boost;
- typedef typename graph_traits < G >::vertex_descriptor vertex;
- typedef typename graph_traits < G >::vertex_iterator vertex_iterator;
-
- function_requires < AdjacencyMatrixConcept < G > >();
- function_requires < EdgeMutableGraphConcept < G > >();
-
- // Make sure second loop will work
- if (num_vertices(g) == 0)
- return;
-
- // for i = 2 to n
- // for k = 1 to i - 1
- // if A[i,k]
- // for j = 1 to n
- // A[i,j] = A[i,j] | A[k,j]
-
- vertex_iterator ic, ie, jc, je, kc, ke;
- for (tie(ic, ie) = vertices(g), ++ic; ic != ie; ++ic)
- for (tie(kc, ke) = vertices(g); *kc != *ic; ++kc)
- if (edge(*ic, *kc, g).second)
- for (tie(jc, je) = vertices(g); jc != je; ++jc)
- if (!edge(*ic, *jc, g).second && edge(*kc, *jc, g).second) {
- add_edge(*ic, *jc, g);
- }
- // for i = 1 to n - 1
- // for k = i + 1 to n
- // if A[i,k]
- // for j = 1 to n
- // A[i,j] = A[i,j] | A[k,j]
-
- for (tie(ic, ie) = vertices(g), --ie; ic != ie; ++ic)
- for (kc = ic, ke = ie, ++kc; kc != ke; ++kc)
- if (edge(*ic, *kc, g).second)
- for (tie(jc, je) = vertices(g); jc != je; ++jc)
- if (!edge(*ic, *jc, g).second && edge(*kc, *jc, g).second) {
- add_edge(*ic, *jc, g);
- }
- }
-
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_TRANSITIVE_CLOSURE_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_TRANSPOSE_HPP
-#define BOOST_GRAPH_TRANSPOSE_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/reverse_graph.hpp>
-#include <boost/graph/copy.hpp>
-
-
-namespace boost {
-
- template <class VertexListGraph, class MutableGraph>
- void transpose_graph(const VertexListGraph& G, MutableGraph& G_T)
- {
- reverse_graph<VertexListGraph> R(G);
- copy_graph(R, G_T);
- }
-
- template <class VertexListGraph, class MutableGraph,
- class P, class T, class R>
- void transpose_graph(const VertexListGraph& G, MutableGraph& G_T,
- const bgl_named_params<P, T, R>& params)
- {
- reverse_graph<VertexListGraph> Rev(G);
- copy_graph(Rev, G_T, params);
- }
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_TRANSPOSE_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 1999.
-// Distributed under the 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_TREE_STRUCTURE_HPP
-#define BOOST_TREE_STRUCTURE_HPP
-
-namespace boost {
-
- template <class T>
- struct tree_traits {
- typedef typename T::node_descriptor node_descriptor;
- typedef typename T::children_iterator children_iterator;
- };
-
-
- template <class Tree, class TreeVisitor>
- void traverse_tree(typename tree_traits<Tree>::node_descriptor v,
- Tree& t, TreeVisitor visitor)
- {
- visitor.preorder(v, t);
- typename tree_traits<Tree>::children_iterator i, end;
- tie(i, end) = children(v, t);
- if (i != end) {
- traverse_tree(*i++, t, visitor);
- visitor.inorder(v, t);
- while (i != end)
- traverse_tree(*i++, t, visitor);
- } else
- visitor.inorder(v, t);
- visitor.postorder(v, t);
- }
-
- struct null_tree_visitor {
- template <typename Node, typename Tree> void preorder(Node, Tree&) { }
- template <typename Node, typename Tree> void inorder(Node, Tree&) { }
- template <typename Node, typename Tree> void postorder(Node, Tree&) { }
- };
-
-} /* namespace boost */
-
-#endif /* BOOST_TREE_STRUCTURE_HPP */
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_UNDIRECTED_DFS_HPP
-#define BOOST_GRAPH_UNDIRECTED_DFS_HPP
-
-#include <boost/graph/depth_first_search.hpp>
-#include <vector>
-
-namespace boost {
-
- namespace detail {
-
-// Define BOOST_RECURSIVE_DFS to use older, recursive version.
-// It is retained for a while in order to perform performance
-// comparison.
-#ifndef BOOST_RECURSIVE_DFS
-
- template <typename IncidenceGraph, typename DFSVisitor,
- typename VertexColorMap, typename EdgeColorMap>
- void undir_dfv_impl
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor& vis,
- VertexColorMap vertex_color,
- EdgeColorMap edge_color)
- {
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
- typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
- typedef typename graph_traits<IncidenceGraph>::edge_descriptor Edge;
- function_requires<ReadWritePropertyMapConcept<VertexColorMap,Vertex> >();
- function_requires<ReadWritePropertyMapConcept<EdgeColorMap,Edge> >();
- typedef typename property_traits<VertexColorMap>::value_type ColorValue;
- typedef typename property_traits<EdgeColorMap>::value_type EColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
- function_requires< ColorValueConcept<EColorValue> >();
- typedef color_traits<ColorValue> Color;
- typedef color_traits<EColorValue> EColor;
- typedef typename graph_traits<IncidenceGraph>::out_edge_iterator Iter;
- typedef std::pair<Vertex, std::pair<Iter, Iter> > VertexInfo;
-
- std::vector<VertexInfo> stack;
-
- put(vertex_color, u, Color::gray());
- vis.discover_vertex(u, g);
- stack.push_back(std::make_pair(u, out_edges(u, g)));
- while (!stack.empty()) {
- VertexInfo& back = stack.back();
- u = back.first;
- Iter ei, ei_end;
- tie(ei, ei_end) = back.second;
- stack.pop_back();
- while (ei != ei_end) {
- Vertex v = target(*ei, g);
- vis.examine_edge(*ei, g);
- ColorValue v_color = get(vertex_color, v);
- EColorValue uv_color = get(edge_color, *ei);
- put(edge_color, *ei, EColor::black());
- if (v_color == Color::white()) {
- vis.tree_edge(*ei, g);
- stack.push_back(std::make_pair(u, std::make_pair(++ei, ei_end)));
- u = v;
- put(vertex_color, u, Color::gray());
- vis.discover_vertex(u, g);
- tie(ei, ei_end) = out_edges(u, g);
- } else if (v_color == Color::gray()) {
- if (uv_color == EColor::white()) vis.back_edge(*ei, g);
- ++ei;
- } else { // if (v_color == Color::black())
- ++ei;
- }
- }
- put(vertex_color, u, Color::black());
- vis.finish_vertex(u, g);
- }
- }
-
-#else // BOOST_RECURSIVE_DFS
-
- template <typename IncidenceGraph, typename DFSVisitor,
- typename VertexColorMap, typename EdgeColorMap>
- void undir_dfv_impl
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor& vis, // pass-by-reference here, important!
- VertexColorMap vertex_color,
- EdgeColorMap edge_color)
- {
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
- typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
- typedef typename graph_traits<IncidenceGraph>::edge_descriptor Edge;
- function_requires<ReadWritePropertyMapConcept<VertexColorMap,Vertex> >();
- function_requires<ReadWritePropertyMapConcept<EdgeColorMap,Edge> >();
- typedef typename property_traits<VertexColorMap>::value_type ColorValue;
- typedef typename property_traits<EdgeColorMap>::value_type EColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
- function_requires< ColorValueConcept<EColorValue> >();
- typedef color_traits<ColorValue> Color;
- typedef color_traits<EColorValue> EColor;
- typename graph_traits<IncidenceGraph>::out_edge_iterator ei, ei_end;
-
- put(vertex_color, u, Color::gray()); vis.discover_vertex(u, g);
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
- Vertex v = target(*ei, g); vis.examine_edge(*ei, g);
- ColorValue v_color = get(vertex_color, v);
- EColorValue uv_color = get(edge_color, *ei);
- put(edge_color, *ei, EColor::black());
- if (v_color == Color::white()) { vis.tree_edge(*ei, g);
- undir_dfv_impl(g, v, vis, vertex_color, edge_color);
- } else if (v_color == Color::gray() && uv_color == EColor::white())
- vis.back_edge(*ei, g);
- }
- put(vertex_color, u, Color::black()); vis.finish_vertex(u, g);
- }
-
-#endif // ! BOOST_RECURSIVE_DFS
-
- } // namespace detail
-
- template <typename Graph, typename DFSVisitor,
- typename VertexColorMap, typename EdgeColorMap,
- typename Vertex>
- void
- undirected_dfs(const Graph& g, DFSVisitor vis,
- VertexColorMap vertex_color, EdgeColorMap edge_color,
- Vertex start_vertex)
- {
- function_requires<DFSVisitorConcept<DFSVisitor, Graph> >();
- function_requires<EdgeListGraphConcept<Graph> >();
-
- typedef typename property_traits<VertexColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- put(vertex_color, *ui, Color::white()); vis.initialize_vertex(*ui, g);
- }
- typename graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
- put(edge_color, *ei, Color::white());
-
- if (start_vertex != *vertices(g).first){ vis.start_vertex(start_vertex, g);
- detail::undir_dfv_impl(g, start_vertex, vis, vertex_color, edge_color);
- }
-
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- ColorValue u_color = get(vertex_color, *ui);
- if (u_color == Color::white()) { vis.start_vertex(*ui, g);
- detail::undir_dfv_impl(g, *ui, vis, vertex_color, edge_color);
- }
- }
- }
-
- template <typename Graph, typename DFSVisitor, typename VertexColorMap,
- typename EdgeColorMap>
- void
- undirected_dfs(const Graph& g, DFSVisitor vis,
- VertexColorMap vertex_color, EdgeColorMap edge_color)
- {
- undirected_dfs(g, vis, vertex_color, edge_color, *vertices(g).first);
- }
-
- namespace detail {
- template <typename VertexColorMap>
- struct udfs_dispatch {
-
- template <typename Graph, typename Vertex,
- typename DFSVisitor, typename EdgeColorMap,
- typename P, typename T, typename R>
- static void
- apply(const Graph& g, DFSVisitor vis, Vertex start_vertex,
- const bgl_named_params<P, T, R>&,
- EdgeColorMap edge_color,
- VertexColorMap vertex_color)
- {
- undirected_dfs(g, vis, vertex_color, edge_color, start_vertex);
- }
- };
-
- template <>
- struct udfs_dispatch<detail::error_property_not_found> {
- template <typename Graph, typename Vertex, typename DFSVisitor,
- typename EdgeColorMap,
- typename P, typename T, typename R>
- static void
- apply(const Graph& g, DFSVisitor vis, Vertex start_vertex,
- const bgl_named_params<P, T, R>& params,
- EdgeColorMap edge_color,
- detail::error_property_not_found)
- {
- std::vector<default_color_type> color_vec(num_vertices(g));
- default_color_type c = white_color; // avoid warning about un-init
- undirected_dfs
- (g, vis, make_iterator_property_map
- (color_vec.begin(),
- choose_const_pmap(get_param(params, vertex_index),
- g, vertex_index), c),
- edge_color,
- start_vertex);
- }
- };
-
- } // namespace detail
-
-
- // Named Parameter Variant
- template <typename Graph, typename P, typename T, typename R>
- void
- undirected_dfs(const Graph& g,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_value< bgl_named_params<P, T, R>,
- vertex_color_t>::type C;
- detail::udfs_dispatch<C>::apply
- (g,
- choose_param(get_param(params, graph_visitor),
- make_dfs_visitor(null_visitor())),
- choose_param(get_param(params, root_vertex_t()),
- *vertices(g).first),
- params,
- get_param(params, edge_color),
- get_param(params, vertex_color)
- );
- }
-
-
- template <typename IncidenceGraph, typename DFSVisitor,
- typename VertexColorMap, typename EdgeColorMap>
- void undirected_depth_first_visit
- (const IncidenceGraph& g,
- typename graph_traits<IncidenceGraph>::vertex_descriptor u,
- DFSVisitor vis, VertexColorMap vertex_color, EdgeColorMap edge_color)
- {
- detail::undir_dfv_impl(g, u, vis, vertex_color, edge_color);
- }
-
-
-} // namespace boost
-
-
-#endif
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Copyright (C) 2001 Vladimir Prus <ghost@cs.msu.su>
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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 mutating functions (add_edge, etc.) were added by Vladimir Prus.
-
-#ifndef BOOST_VECTOR_AS_GRAPH_HPP
-#define BOOST_VECTOR_AS_GRAPH_HPP
-
-#include <cassert>
-#include <utility>
-#include <vector>
-#include <cstddef>
-#include <boost/iterator.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/pending/integer_range.hpp>
-#include <algorithm>
-
-/*
- This module implements the VertexListGraph concept using a
- std::vector as the "back-bone" of the graph (the vector *is* the
- graph object). The edge-lists type of the graph is templated, so the
- user can choose any STL container, so long as the value_type of the
- container is convertible to the size_type of the vector. For now any
- graph properties must be stored seperately.
-
- This module requires the C++ compiler to support partial
- specialization for the graph_traits class, so this is not portable
- to VC++.
-
-*/
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#error The vector-as-graph module requires a compiler that supports partial specialization
-#endif
-
-
-namespace boost {
- namespace detail {
- template <class EdgeList> struct val_out_edge_ret;
- template <class EdgeList> struct val_out_edge_iter;
- template <class EdgeList> struct val_edge;
- }
-}
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace boost {
-
- struct vector_as_graph_traversal_tag
- : public vertex_list_graph_tag,
- public adjacency_graph_tag,
- public incidence_graph_tag { };
-
- template <class EdgeList>
- struct graph_traits< std::vector<EdgeList> >
- {
- typedef typename EdgeList::value_type V;
- typedef V vertex_descriptor;
- typedef typename detail::val_edge<EdgeList>::type edge_descriptor;
- typedef typename EdgeList::const_iterator adjacency_iterator;
- typedef typename detail::val_out_edge_iter<EdgeList>::type
- out_edge_iterator;
- typedef void in_edge_iterator;
- typedef void edge_iterator;
- typedef typename integer_range<V>::iterator vertex_iterator;
- typedef directed_tag directed_category;
- typedef allow_parallel_edge_tag edge_parallel_category;
- typedef vector_as_graph_traversal_tag traversal_category;
- typedef typename std::vector<EdgeList>::size_type vertices_size_type;
- typedef void edges_size_type;
- typedef typename EdgeList::size_type degree_size_type;
- };
- template <class EdgeList>
- struct edge_property_type< std::vector<EdgeList> >
- {
- typedef void type;
- };
- template <class EdgeList>
- struct vertex_property_type< std::vector<EdgeList> >
- {
- typedef void type;
- };
- template <class EdgeList>
- struct graph_property_type< std::vector<EdgeList> >
- {
- typedef void type;
- };
-}
-#endif
-
-namespace boost {
-
- namespace detail {
-
- // "val" is short for Vector Adjacency List
-
- template <class EdgeList>
- struct val_edge
- {
- typedef typename EdgeList::value_type V;
- typedef std::pair<V,V> type;
- };
-
- // need rewrite this using boost::iterator_adaptor
- template <class V, class Iter>
- class val_out_edge_iterator
- : public boost::iterator<std::input_iterator_tag, std::pair<V,V>,
- std::ptrdiff_t, std::pair<V,V>*, const std::pair<V,V> >
- {
- typedef val_out_edge_iterator self;
- typedef std::pair<V,V> Edge;
- public:
- val_out_edge_iterator() { }
- val_out_edge_iterator(V s, Iter i) : _source(s), _iter(i) { }
- Edge operator*() const { return Edge(_source, *_iter); }
- self& operator++() { ++_iter; return *this; }
- self operator++(int) { self t = *this; ++_iter; return t; }
- bool operator==(const self& x) const { return _iter == x._iter; }
- bool operator!=(const self& x) const { return _iter != x._iter; }
- protected:
- V _source;
- Iter _iter;
- };
-
- template <class EdgeList>
- struct val_out_edge_iter
- {
- typedef typename EdgeList::value_type V;
- typedef typename EdgeList::const_iterator Iter;
- typedef val_out_edge_iterator<V,Iter> type;
- };
-
- template <class EdgeList>
- struct val_out_edge_ret
- {
- typedef typename val_out_edge_iter<EdgeList>::type IncIter;
- typedef std::pair<IncIter,IncIter> type;
- };
-
- } // namesapce detail
-
- template <class EdgeList, class Alloc>
- typename detail::val_out_edge_ret<EdgeList>::type
- out_edges(typename EdgeList::value_type v,
- const std::vector<EdgeList, Alloc>& g)
- {
- typedef typename detail::val_out_edge_iter<EdgeList>::type Iter;
- typedef typename detail::val_out_edge_ret<EdgeList>::type return_type;
- return return_type(Iter(v, g[v].begin()), Iter(v, g[v].end()));
- }
-
- template <class EdgeList, class Alloc>
- typename EdgeList::size_type
- out_degree(typename EdgeList::value_type v,
- const std::vector<EdgeList, Alloc>& g)
- {
- return g[v].size();
- }
-
- template <class EdgeList, class Alloc>
- std::pair<typename EdgeList::const_iterator,
- typename EdgeList::const_iterator>
- adjacent_vertices(typename EdgeList::value_type v,
- const std::vector<EdgeList, Alloc>& g)
- {
- return std::make_pair(g[v].begin(), g[v].end());
- }
-
- // source() and target() already provided for pairs in graph_traits.hpp
-
- template <class EdgeList, class Alloc>
- std::pair<typename boost::integer_range<typename EdgeList::value_type>
- ::iterator,
- typename boost::integer_range<typename EdgeList::value_type>
- ::iterator >
- vertices(const std::vector<EdgeList, Alloc>& v)
- {
- typedef typename boost::integer_range<typename EdgeList::value_type>
- ::iterator Iter;
- return std::make_pair(Iter(0), Iter(v.size()));
- }
-
- template <class EdgeList, class Alloc>
- typename std::vector<EdgeList, Alloc>::size_type
- num_vertices(const std::vector<EdgeList, Alloc>& v)
- {
- return v.size();
- }
-
- template<class EdgeList, class Allocator>
- typename std::pair<typename detail::val_edge<EdgeList>::type, bool>
- add_edge(typename EdgeList::value_type u, typename EdgeList::value_type v,
- std::vector<EdgeList, Allocator>& g)
- {
- typedef typename detail::val_edge<EdgeList>::type edge_type;
- g[u].insert(g[u].end(), v);
- return std::make_pair(edge_type(u, v), true);
- }
-
- template<class EdgeList, class Allocator>
- typename std::pair<typename detail::val_edge<EdgeList>::type, bool>
- edge(typename EdgeList::value_type u, typename EdgeList::value_type v,
- std::vector<EdgeList, Allocator>& g)
- {
- typedef typename detail::val_edge<EdgeList>::type edge_type;
- typename EdgeList::iterator i = g[u].begin(), end = g[u].end();
- for (; i != end; ++i)
- if (*i == v)
- return std::make_pair(edge_type(u, v), true);
- return std::make_pair(edge_type(), false);
- }
-
- template<class EdgeList, class Allocator>
- void
- remove_edge(typename EdgeList::value_type u, typename EdgeList::value_type v,
- std::vector<EdgeList, Allocator>& g)
- {
- typename EdgeList::iterator i = std::remove(g[u].begin(), g[u].end(), v);
- if (i != g[u].end())
- g[u].erase(i, g[u].end());
- }
-
- template<class EdgeList, class Allocator>
- void
- remove_edge(typename detail::val_edge<EdgeList>::type e,
- std::vector<EdgeList, Allocator>& g)
- {
- typename EdgeList::value_type u, v;
- u = e.first;
- v = e.second;
- // FIXME: edge type does not fully specify the edge to be deleted
- typename EdgeList::iterator i = std::remove(g[u].begin(), g[u].end(), v);
- if (i != g[u].end())
- g[u].erase(i, g[u].end());
- }
-
- template<class EdgeList, class Allocator, class Predicate>
- void
- remove_edge_if(Predicate p,
- std::vector<EdgeList, Allocator>& g)
- {
- for (std::size_t u = 0; u < g.size(); ++u) {
- // Oops! gcc gets internal compiler error on compose_.......
-
- typedef typename EdgeList::iterator iterator;
- iterator b = g[u].begin(), e = g[u].end();
-
- if (!g[u].empty()) {
-
- for(; b != e;) {
- if (p(std::make_pair(u, *b))) {
- --e;
- if (b == e)
- break;
- else
- iter_swap(b, e);
- } else {
- ++b;
- }
- }
- }
-
- if (e != g[u].end())
- g[u].erase(e, g[u].end());
- }
- }
-
- template<class EdgeList, class Allocator>
- typename EdgeList::value_type
- add_vertex(std::vector<EdgeList, Allocator>& g)
- {
- g.resize(g.size()+1);
- return g.size()-1;
- }
-
- template<class EdgeList, class Allocator>
- void
- clear_vertex(typename EdgeList::value_type u,
- std::vector<EdgeList, Allocator>& g)
- {
- g[u].clear();
- for (std::size_t i = 0; i < g.size(); ++i)
- remove_edge(i, u, g);
- }
-
- template<class EdgeList, class Allocator>
- void
- remove_vertex(typename EdgeList::value_type u,
- std::vector<EdgeList, Allocator>& g)
- {
- typedef typename EdgeList::iterator iterator;
- clear_vertex(u, g);
- g.erase(g.begin() + u);
- for (std::size_t i = 0; i < g.size(); ++i)
- for ( iterator it = g[i].begin(); it != g[i].end(); ++it )
- // after clear_vertex *it is never equal to u
- if ( *it > u )
- --*it;
- }
-
-} // namespace boost
-
-#endif // BOOST_VECTOR_AS_GRAPH_HPP
+++ /dev/null
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//=======================================================================
-//
-// Revision History:
-// 01 April 2001: Modified to use new <boost/limits.hpp> header. (JMaddock)
-//
-#ifndef BOOST_GRAPH_GRAPH_SEARCH_VISITORS_HPP
-#define BOOST_GRAPH_GRAPH_SEARCH_VISITORS_HPP
-
-#include <iosfwd>
-#include <boost/config.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/limits.hpp>
-#include <boost/graph/detail/is_same.hpp>
-
-namespace boost {
-
- // This is a bit more convenient than std::numeric_limits because
- // you don't have to explicitly provide type T.
- template <class T>
- inline T numeric_limits_max(T) { return (std::numeric_limits<T>::max)(); }
-
- //========================================================================
- // Event Tags
-
- namespace detail {
- // For partial specialization workaround
- enum event_visitor_enum
- { on_no_event_num,
- on_initialize_vertex_num, on_start_vertex_num,
- on_discover_vertex_num, on_finish_vertex_num, on_examine_vertex_num,
- on_examine_edge_num, on_tree_edge_num, on_non_tree_edge_num,
- on_gray_target_num, on_black_target_num,
- on_forward_or_cross_edge_num, on_back_edge_num,
- on_edge_relaxed_num, on_edge_not_relaxed_num,
- on_edge_minimized_num, on_edge_not_minimized_num
- };
-
- template<typename Event, typename Visitor>
- struct functor_to_visitor : Visitor
- {
- typedef Event event_filter;
- functor_to_visitor(const Visitor& visitor) : Visitor(visitor) {}
- };
-
- } // namespace detail
-
- struct on_no_event { enum { num = detail::on_no_event_num }; };
-
- struct on_initialize_vertex {
- enum { num = detail::on_initialize_vertex_num }; };
- struct on_start_vertex { enum { num = detail::on_start_vertex_num }; };
- struct on_discover_vertex { enum { num = detail::on_discover_vertex_num }; };
- struct on_examine_vertex { enum { num = detail::on_examine_vertex_num }; };
- struct on_finish_vertex { enum { num = detail::on_finish_vertex_num }; };
-
- struct on_examine_edge { enum { num = detail::on_examine_edge_num }; };
- struct on_tree_edge { enum { num = detail::on_tree_edge_num }; };
- struct on_non_tree_edge { enum { num = detail::on_non_tree_edge_num }; };
- struct on_gray_target { enum { num = detail::on_gray_target_num }; };
- struct on_black_target { enum { num = detail::on_black_target_num }; };
- struct on_forward_or_cross_edge {
- enum { num = detail::on_forward_or_cross_edge_num }; };
- struct on_back_edge { enum { num = detail::on_back_edge_num }; };
-
- struct on_edge_relaxed { enum { num = detail::on_edge_relaxed_num }; };
- struct on_edge_not_relaxed {
- enum { num = detail::on_edge_not_relaxed_num }; };
- struct on_edge_minimized { enum { num = detail::on_edge_minimized_num }; };
- struct on_edge_not_minimized {
- enum { num = detail::on_edge_not_minimized_num }; };
-
- struct true_tag { enum { num = true }; };
- struct false_tag { enum { num = false }; };
-
- //========================================================================
- // base_visitor and null_visitor
-
- // needed for MSVC workaround
- template <class Visitor>
- struct base_visitor {
- typedef on_no_event event_filter;
- template <class T, class Graph>
- void operator()(T, Graph&) { }
- };
-
- struct null_visitor : public base_visitor<null_visitor> {
- typedef on_no_event event_filter;
- template <class T, class Graph>
- void operator()(T, Graph&) { }
- };
-
- //========================================================================
- // The invoke_visitors() function
-
- namespace detail {
- template <class Visitor, class T, class Graph>
- inline void
- invoke_dispatch(Visitor& v, T x, Graph& g, true_tag) {
- v(x, g);
- }
- template <class Visitor, class T, class Graph>
- inline void
- invoke_dispatch(Visitor&, T, Graph&, false_tag) { }
- } // namespace detail
-
- template <class Visitor, class Rest, class T, class Graph, class Tag>
- inline void
- invoke_visitors(std::pair<Visitor, Rest>& vlist, T x, Graph& g, Tag tag) {
- typedef typename Visitor::event_filter Category;
- typedef typename graph_detail::is_same<Category, Tag>::is_same_tag
- IsSameTag;
- detail::invoke_dispatch(vlist.first, x, g, IsSameTag());
- invoke_visitors(vlist.second, x, g, tag);
- }
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- template <class Visitor, class T, class Graph, class Tag>
- inline void
- invoke_visitors(base_visitor<Visitor>& vis, T x, Graph& g, Tag) {
- typedef typename Visitor::event_filter Category;
- typedef typename graph_detail::is_same<Category, Tag>::is_same_tag
- IsSameTag;
- Visitor& v = static_cast<Visitor&>(vis);
- detail::invoke_dispatch(v, x, g, IsSameTag());
- }
-#else
- template <class Visitor, class T, class Graph, class Tag>
- inline void
- invoke_visitors(Visitor& v, T x, Graph& g, Tag) {
- typedef typename Visitor::event_filter Category;
- typedef typename graph_detail::is_same<Category, Tag>::is_same_tag
- IsSameTag;
- detail::invoke_dispatch(v, x, g, IsSameTag());
- }
-#endif
-
- //========================================================================
- // predecessor_recorder
-
- template <class PredecessorMap, class Tag>
- struct predecessor_recorder
- : public base_visitor<predecessor_recorder<PredecessorMap, Tag> >
- {
- typedef Tag event_filter;
- predecessor_recorder(PredecessorMap pa) : m_predecessor(pa) { }
- template <class Edge, class Graph>
- void operator()(Edge e, const Graph& g) {
- put(m_predecessor, target(e, g), source(e, g));
- }
- PredecessorMap m_predecessor;
- };
- template <class PredecessorMap, class Tag>
- predecessor_recorder<PredecessorMap, Tag>
- record_predecessors(PredecessorMap pa, Tag) {
- return predecessor_recorder<PredecessorMap, Tag> (pa);
- }
-
- //========================================================================
- // edge_predecessor_recorder
-
- template <class PredEdgeMap, class Tag>
- struct edge_predecessor_recorder
- : public base_visitor<edge_predecessor_recorder<PredEdgeMap, Tag> >
- {
- typedef Tag event_filter;
- edge_predecessor_recorder(PredEdgeMap pa) : m_predecessor(pa) { }
- template <class Edge, class Graph>
- void operator()(Edge e, const Graph& g) {
- put(m_predecessor, target(e, g), e);
- }
- PredEdgeMap m_predecessor;
- };
- template <class PredEdgeMap, class Tag>
- edge_predecessor_recorder<PredEdgeMap, Tag>
- record_edge_predecessors(PredEdgeMap pa, Tag) {
- return edge_predecessor_recorder<PredEdgeMap, Tag> (pa);
- }
-
- //========================================================================
- // distance_recorder
-
- template <class DistanceMap, class Tag>
- struct distance_recorder
- : public base_visitor<distance_recorder<DistanceMap, Tag> >
- {
- typedef Tag event_filter;
- distance_recorder(DistanceMap pa) : m_distance(pa) { }
- template <class Edge, class Graph>
- void operator()(Edge e, const Graph& g) {
- typename graph_traits<Graph>::vertex_descriptor
- u = source(e, g), v = target(e, g);
- put(m_distance, v, get(m_distance, u) + 1);
- }
- DistanceMap m_distance;
- };
- template <class DistanceMap, class Tag>
- distance_recorder<DistanceMap, Tag>
- record_distances(DistanceMap pa, Tag) {
- return distance_recorder<DistanceMap, Tag> (pa);
- }
-
- //========================================================================
- // time_stamper
-
-
- template <class TimeMap, class TimeT, class Tag>
- struct time_stamper
- : public base_visitor<time_stamper<TimeMap, TimeT, Tag> >
- {
- typedef Tag event_filter;
- time_stamper(TimeMap pa, TimeT& t) : m_time_pa(pa), m_time(t) { }
- template <class Vertex, class Graph>
- void operator()(Vertex u, const Graph&) {
- put(m_time_pa, u, ++m_time);
- }
- TimeMap m_time_pa;
- TimeT& m_time;
- };
- template <class TimeMap, class TimeT, class Tag>
- time_stamper<TimeMap, TimeT, Tag>
- stamp_times(TimeMap pa, TimeT& time_counter, Tag) {
- return time_stamper<TimeMap, TimeT, Tag>(pa, time_counter);
- }
-
- //========================================================================
- // property_writer
-
- template <class PA, class OutputIterator, class Tag>
- struct property_writer
- : public base_visitor<property_writer<PA, OutputIterator, Tag> >
- {
- typedef Tag event_filter;
-
- property_writer(PA pa, OutputIterator out) : m_pa(pa), m_out(out) { }
-
- template <class T, class Graph>
- void operator()(T x, Graph&) { *m_out++ = get(m_pa, x); }
- PA m_pa;
- OutputIterator m_out;
- };
- template <class PA, class OutputIterator, class Tag>
- property_writer<PA, OutputIterator, Tag>
- write_property(PA pa, OutputIterator out, Tag) {
- return property_writer<PA, OutputIterator, Tag>(pa, out);
- }
-
-#define BOOST_GRAPH_EVENT_STUB(Event,Kind) \
- typedef ::boost::Event Event##_type; \
- template<typename Visitor> \
- Kind##_visitor<std::pair<detail::functor_to_visitor<Event##_type, \
- Visitor>, Visitors> > \
- do_##Event(Visitor visitor) \
- { \
- typedef std::pair<detail::functor_to_visitor<Event##_type, Visitor>, \
- Visitors> visitor_list; \
- typedef Kind##_visitor<visitor_list> result_type; \
- return result_type(visitor_list(visitor, m_vis)); \
- }
-
-} /* namespace boost */
-
-#endif
+++ /dev/null
-//
-//=======================================================================
-// Copyright 2002 Marc Wintermantel (wintermantel@imes.mavt.ethz.ch)
-// ETH Zurich, Center of Structure Technologies (www.imes.ethz.ch/st)
-//
-// This file is part of the Boost Graph Library
-//
-// You should have received a copy of the License Agreement for the
-// Boost Graph Library along with the software; see the file LICENSE.
-// If not, contact Office of Research, University of Notre Dame, Notre
-// Dame, IN 46556.
-//
-// Permission to modify the code and to distribute modified code is
-// granted, provided the text of this NOTICE is retained, a notice that
-// the code was modified is included with the above COPYRIGHT NOTICE and
-// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
-// file is distributed with the modified code.
-//
-// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
-// By way of example, but not limitation, Licensor MAKES NO
-// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
-// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
-// OR OTHER RIGHTS.
-//=======================================================================
-//
-
-#ifndef BOOST_GRAPH_WAVEFRONT_HPP
-#define BOOST_GRAPH_WAVEFRONT_HPP
-
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/detail/numeric_traits.hpp>
-#include <boost/graph/bandwidth.hpp>
-#include <cmath>
-#include <vector>
-#include <algorithm> // for std::min and std::max
-
-namespace boost {
-
- template <typename Graph, typename VertexIndexMap>
- typename graph_traits<Graph>::vertices_size_type
- ith_wavefront(typename graph_traits<Graph>::vertex_descriptor i,
- const Graph& g,
- VertexIndexMap index)
- {
- typename graph_traits<Graph>::vertex_descriptor v, w;
- typename graph_traits<Graph>::vertices_size_type b = 1;
- typename graph_traits<Graph>::out_edge_iterator edge_it2, edge_it2_end;
- typename graph_traits<Graph>::vertices_size_type index_i = index[i];
- std::vector<bool> rows_active(num_vertices(g), false);
-
- rows_active[index_i] = true;
-
- typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
- {
- v = *ui;
- if(index[v] <= index_i)
- {
- for (tie(edge_it2, edge_it2_end) = out_edges(v, g); edge_it2 != edge_it2_end; ++edge_it2)
- {
- w = target(*edge_it2, g);
- if( (index[w] >= index_i) && (!rows_active[index[w]]) )
- {
- b++;
- rows_active[index[w]] = true;
- }
- }
- }
- }
-
- return b;
- }
-
-
- template <typename Graph>
- typename graph_traits<Graph>::vertices_size_type
- ith_wavefront(typename graph_traits<Graph>::vertex_descriptor i,
- const Graph& g)
- {
- return ith_wavefront(i, g, get(vertex_index, g));
- }
-
-
- template <typename Graph, typename VertexIndexMap>
- typename graph_traits<Graph>::vertices_size_type
- max_wavefront(const Graph& g, VertexIndexMap index)
- {
- BOOST_USING_STD_MAX();
- typename graph_traits<Graph>::vertices_size_type b = 0;
- typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
- b = max BOOST_PREVENT_MACRO_SUBSTITUTION(b, ith_wavefront(*i, g, index));
- return b;
- }
-
- template <typename Graph>
- typename graph_traits<Graph>::vertices_size_type
- max_wavefront(const Graph& g)
- {
- return max_wavefront(g, get(vertex_index, g));
- }
-
-
- template <typename Graph, typename VertexIndexMap>
- double
- aver_wavefront(const Graph& g, VertexIndexMap index)
- {
- double b = 0;
- typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
- b += ith_wavefront(*i, g, index);
-
- b /= num_vertices(g);
- return b;
- }
-
- template <typename Graph>
- double
- aver_wavefront(const Graph& g)
- {
- return aver_wavefront(g, get(vertex_index, g));
- }
-
-
- template <typename Graph, typename VertexIndexMap>
- double
- rms_wavefront(const Graph& g, VertexIndexMap index)
- {
- double b = 0;
- typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
- b += std::pow(double ( ith_wavefront(*i, g, index) ), 2.0);
-
- b /= num_vertices(g);
-
- return std::sqrt(b);
- }
-
- template <typename Graph>
- double
- rms_wavefront(const Graph& g)
- {
- return rms_wavefront(g, get(vertex_index, g));
- }
-
-
-} // namespace boost
-
-#endif // BOOST_GRAPH_WAVEFRONT_HPP
+++ /dev/null
-// 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 IMPLICIT_CAST_DWA200356_HPP
-# define IMPLICIT_CAST_DWA200356_HPP
-
-# include <boost/mpl/identity.hpp>
-
-namespace boost {
-
-// implementation originally suggested by C. Green in
-// http://lists.boost.org/MailArchives/boost/msg00886.php
-
-// The use of identity creates a non-deduced form, so that the
-// explicit template argument must be supplied
-template <typename T>
-inline T implicit_cast (typename mpl::identity<T>::type x) {
- return x;
-}
-
-// incomplete return type now is here
-//template <typename T>
-//void implicit_cast (...);
-
-// Macro for when you need a constant expression (Gennaro Prota)
-#define BOOST_IMPLICIT_CAST(dst_type, expr) \
- ( sizeof( implicit_cast<dst_type>(expr) ) \
- , \
- static_cast<dst_type>(expr) \
- )
-
-} // namespace boost
-
-#endif // IMPLICIT_CAST_DWA200356_HPP
+++ /dev/null
-#ifndef INDIRECT_REFERENCE_DWA200415_HPP
-# define INDIRECT_REFERENCE_DWA200415_HPP
-
-//
-// Copyright David Abrahams 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)
-//
-// typename indirect_reference<P>::type provides the type of *p.
-//
-// http://www.boost.org/libs/iterator/doc/pointee.html
-//
-
-# include <boost/detail/is_incrementable.hpp>
-# include <boost/iterator/iterator_traits.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/mpl/eval_if.hpp>
-# include <boost/pointee.hpp>
-
-namespace boost {
-
-namespace detail
-{
- template <class P>
- struct smart_ptr_reference
- {
- typedef typename boost::pointee<P>::type& type;
- };
-}
-
-template <class P>
-struct indirect_reference
- : mpl::eval_if<
- detail::is_incrementable<P>
- , iterator_reference<P>
- , detail::smart_ptr_reference<P>
- >
-{
-};
-
-} // namespace boost
-
-#endif // INDIRECT_REFERENCE_DWA200415_HPP
+++ /dev/null
-// boost integer.hpp header file -------------------------------------------//
-
-// Copyright Beman Dawes and Daryle Walker 1999. Distributed under the 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/integer for documentation.
-
-// Revision History
-// 22 Sep 01 Added value-based integer templates. (Daryle Walker)
-// 01 Apr 01 Modified to use new <boost/limits.hpp> header. (John Maddock)
-// 30 Jul 00 Add typename syntax fix (Jens Maurer)
-// 28 Aug 99 Initial version
-
-#ifndef BOOST_INTEGER_HPP
-#define BOOST_INTEGER_HPP
-
-#include <boost/integer_fwd.hpp> // self include
-
-#include <boost/integer_traits.hpp> // for boost::integer_traits
-#include <boost/limits.hpp> // for std::numeric_limits
-
-namespace boost
-{
-
- // Helper templates ------------------------------------------------------//
-
- // fast integers from least integers
- // int_fast_t<> works correctly for unsigned too, in spite of the name.
- template< typename LeastInt >
- struct int_fast_t { typedef LeastInt fast; }; // imps may specialize
-
- // convert category to type
- template< int Category > struct int_least_helper {}; // default is empty
-
- // specializatons: 1=long, 2=int, 3=short, 4=signed char,
- // 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned long
- // no specializations for 0 and 5: requests for a type > long are in error
- template<> struct int_least_helper<1> { typedef long least; };
- template<> struct int_least_helper<2> { typedef int least; };
- template<> struct int_least_helper<3> { typedef short least; };
- template<> struct int_least_helper<4> { typedef signed char least; };
- template<> struct int_least_helper<6> { typedef unsigned long least; };
- template<> struct int_least_helper<7> { typedef unsigned int least; };
- template<> struct int_least_helper<8> { typedef unsigned short least; };
- template<> struct int_least_helper<9> { typedef unsigned char least; };
-
- // integer templates specifying number of bits ---------------------------//
-
- // signed
- template< int Bits > // bits (including sign) required
- struct int_t
- {
- typedef typename int_least_helper
- <
- (Bits-1 <= std::numeric_limits<long>::digits) +
- (Bits-1 <= std::numeric_limits<int>::digits) +
- (Bits-1 <= std::numeric_limits<short>::digits) +
- (Bits-1 <= std::numeric_limits<signed char>::digits)
- >::least least;
- typedef typename int_fast_t<least>::fast fast;
- };
-
- // unsigned
- template< int Bits > // bits required
- struct uint_t
- {
- typedef typename int_least_helper
- <
- 5 +
- (Bits <= std::numeric_limits<unsigned long>::digits) +
- (Bits <= std::numeric_limits<unsigned int>::digits) +
- (Bits <= std::numeric_limits<unsigned short>::digits) +
- (Bits <= std::numeric_limits<unsigned char>::digits)
- >::least least;
- typedef typename int_fast_t<least>::fast fast;
- // int_fast_t<> works correctly for unsigned too, in spite of the name.
- };
-
- // integer templates specifying extreme value ----------------------------//
-
- // signed
- template< long MaxValue > // maximum value to require support
- struct int_max_value_t
- {
- typedef typename int_least_helper
- <
- (MaxValue <= integer_traits<long>::const_max) +
- (MaxValue <= integer_traits<int>::const_max) +
- (MaxValue <= integer_traits<short>::const_max) +
- (MaxValue <= integer_traits<signed char>::const_max)
- >::least least;
- typedef typename int_fast_t<least>::fast fast;
- };
-
- template< long MinValue > // minimum value to require support
- struct int_min_value_t
- {
- typedef typename int_least_helper
- <
- (MinValue >= integer_traits<long>::const_min) +
- (MinValue >= integer_traits<int>::const_min) +
- (MinValue >= integer_traits<short>::const_min) +
- (MinValue >= integer_traits<signed char>::const_min)
- >::least least;
- typedef typename int_fast_t<least>::fast fast;
- };
-
- // unsigned
- template< unsigned long Value > // maximum value to require support
- struct uint_value_t
- {
- typedef typename int_least_helper
- <
- 5 +
- (Value <= integer_traits<unsigned long>::const_max) +
- (Value <= integer_traits<unsigned int>::const_max) +
- (Value <= integer_traits<unsigned short>::const_max) +
- (Value <= integer_traits<unsigned char>::const_max)
- >::least least;
- typedef typename int_fast_t<least>::fast fast;
- };
-
-
-} // namespace boost
-
-#endif // BOOST_INTEGER_HPP
+++ /dev/null
-// Boost integer_fwd.hpp header file ---------------------------------------//
-
-// (C) Copyright Dave Abrahams and Daryle Walker 2001. Distributed under the 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/integer for documentation.
-
-#ifndef BOOST_INTEGER_FWD_HPP
-#define BOOST_INTEGER_FWD_HPP
-
-#include <climits> // for UCHAR_MAX, etc.
-#include <cstddef> // for std::size_t
-
-#include <boost/config.hpp> // for BOOST_NO_INTRINSIC_WCHAR_T
-#include <boost/limits.hpp> // for std::numeric_limits
-
-
-namespace boost
-{
-
-
-// From <boost/cstdint.hpp> ------------------------------------------------//
-
-// Only has typedefs or using statements, with #conditionals
-
-
-// From <boost/integer_traits.hpp> -----------------------------------------//
-
-template < class T >
- class integer_traits;
-
-template < >
- class integer_traits< bool >;
-
-template < >
- class integer_traits< char >;
-
-template < >
- class integer_traits< signed char >;
-
-template < >
- class integer_traits< unsigned char >;
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-template < >
- class integer_traits< wchar_t >;
-#endif
-
-template < >
- class integer_traits< short >;
-
-template < >
- class integer_traits< unsigned short >;
-
-template < >
- class integer_traits< int >;
-
-template < >
- class integer_traits< unsigned int >;
-
-template < >
- class integer_traits< long >;
-
-template < >
- class integer_traits< unsigned long >;
-
-#ifdef ULLONG_MAX
-template < >
- class integer_traits< ::boost::long_long_type>;
-
-template < >
- class integer_traits< ::boost::ulong_long_type >;
-#endif
-
-
-// From <boost/integer.hpp> ------------------------------------------------//
-
-template < typename LeastInt >
- struct int_fast_t;
-
-template< int Bits >
- struct int_t;
-
-template< int Bits >
- struct uint_t;
-
-template< long MaxValue >
- struct int_max_value_t;
-
-template< long MinValue >
- struct int_min_value_t;
-
-template< unsigned long Value >
- struct uint_value_t;
-
-
-// From <boost/integer/integer_mask.hpp> -----------------------------------//
-
-template < std::size_t Bit >
- struct high_bit_mask_t;
-
-template < std::size_t Bits >
- struct low_bits_mask_t;
-
-template < >
- struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >;
-
-#if USHRT_MAX > UCHAR_MAX
-template < >
- struct low_bits_mask_t< ::std::numeric_limits<unsigned short>::digits >;
-#endif
-
-#if UINT_MAX > USHRT_MAX
-template < >
- struct low_bits_mask_t< ::std::numeric_limits<unsigned int>::digits >;
-#endif
-
-#if ULONG_MAX > UINT_MAX
-template < >
- struct low_bits_mask_t< ::std::numeric_limits<unsigned long>::digits >;
-#endif
-
-
-// From <boost/integer/static_log2.hpp> ------------------------------------//
-
-template < unsigned long Value >
- struct static_log2;
-
-template < >
- struct static_log2< 0ul >;
-
-
-// From <boost/integer/static_min_max.hpp> ---------------------------------//
-
-template < long Value1, long Value2 >
- struct static_signed_min;
-
-template < long Value1, long Value2 >
- struct static_signed_max;
-
-template < unsigned long Value1, unsigned long Value2 >
- struct static_unsigned_min;
-
-template < unsigned long Value1, unsigned long Value2 >
- struct static_unsigned_max;
-
-
-} // namespace boost
-
-
-#endif // BOOST_INTEGER_FWD_HPP
+++ /dev/null
-/* boost integer_traits.hpp header file
- *
- * Copyright Jens Maurer 2000
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * $Id$
- *
- * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers
- */
-
-// See http://www.boost.org/libs/integer for documentation.
-
-
-#ifndef BOOST_INTEGER_TRAITS_HPP
-#define BOOST_INTEGER_TRAITS_HPP
-
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-
-// These are an implementation detail and not part of the interface
-#include <limits.h>
-// we need wchar.h for WCHAR_MAX/MIN but not all platforms provide it,
-// and some may have <wchar.h> but not <cwchar> ...
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) && (!defined(BOOST_NO_CWCHAR) || defined(sun) || defined(__sun))
-#include <wchar.h>
-#endif
-
-
-namespace boost {
-template<class T>
-class integer_traits : public std::numeric_limits<T>
-{
-public:
- BOOST_STATIC_CONSTANT(bool, is_integral = false);
-};
-
-namespace detail {
-template<class T, T min_val, T max_val>
-class integer_traits_base
-{
-public:
- BOOST_STATIC_CONSTANT(bool, is_integral = true);
- BOOST_STATIC_CONSTANT(T, const_min = min_val);
- BOOST_STATIC_CONSTANT(T, const_max = max_val);
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-// A definition is required even for integral static constants
-template<class T, T min_val, T max_val>
-const bool integer_traits_base<T, min_val, max_val>::is_integral;
-
-template<class T, T min_val, T max_val>
-const T integer_traits_base<T, min_val, max_val>::const_min;
-
-template<class T, T min_val, T max_val>
-const T integer_traits_base<T, min_val, max_val>::const_max;
-#endif
-
-} // namespace detail
-
-template<>
-class integer_traits<bool>
- : public std::numeric_limits<bool>,
- public detail::integer_traits_base<bool, false, true>
-{ };
-
-template<>
-class integer_traits<char>
- : public std::numeric_limits<char>,
- public detail::integer_traits_base<char, CHAR_MIN, CHAR_MAX>
-{ };
-
-template<>
-class integer_traits<signed char>
- : public std::numeric_limits<signed char>,
- public detail::integer_traits_base<signed char, SCHAR_MIN, SCHAR_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned char>
- : public std::numeric_limits<unsigned char>,
- public detail::integer_traits_base<unsigned char, 0, UCHAR_MAX>
-{ };
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-template<>
-class integer_traits<wchar_t>
- : public std::numeric_limits<wchar_t>,
- // Don't trust WCHAR_MIN and WCHAR_MAX with Mac OS X's native
- // library: they are wrong!
-#if defined(WCHAR_MIN) && defined(WCHAR_MAX) && !defined(__APPLE__)
- public detail::integer_traits_base<wchar_t, WCHAR_MIN, WCHAR_MAX>
-#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__))
- // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned:
- public detail::integer_traits_base<wchar_t, 0, 0xffff>
-#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\
- || (defined __APPLE__)\
- || (defined(__OpenBSD__) && defined(__GNUC__))\
- || (defined(__NetBSD__) && defined(__GNUC__))\
- || (defined(__FreeBSD__) && defined(__GNUC__))\
- || (defined(__DragonFly__) && defined(__GNUC__))\
- || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT))
- // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int.
- // - SGI MIPSpro with native library
- // - gcc 3.x on HP-UX
- // - Mac OS X with native library
- // - gcc on FreeBSD, OpenBSD and NetBSD
- public detail::integer_traits_base<wchar_t, INT_MIN, INT_MAX>
-#elif defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 2) && !defined(__SGI_STL_PORT)
- // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as unsigned int.
- // - gcc 2.95.x on HP-UX
- // (also, std::numeric_limits<wchar_t> appears to return the wrong values).
- public detail::integer_traits_base<wchar_t, 0, UINT_MAX>
-#else
-#error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler.
-#endif
-{ };
-#endif // BOOST_NO_INTRINSIC_WCHAR_T
-
-template<>
-class integer_traits<short>
- : public std::numeric_limits<short>,
- public detail::integer_traits_base<short, SHRT_MIN, SHRT_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned short>
- : public std::numeric_limits<unsigned short>,
- public detail::integer_traits_base<unsigned short, 0, USHRT_MAX>
-{ };
-
-template<>
-class integer_traits<int>
- : public std::numeric_limits<int>,
- public detail::integer_traits_base<int, INT_MIN, INT_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned int>
- : public std::numeric_limits<unsigned int>,
- public detail::integer_traits_base<unsigned int, 0, UINT_MAX>
-{ };
-
-template<>
-class integer_traits<long>
- : public std::numeric_limits<long>,
- public detail::integer_traits_base<long, LONG_MIN, LONG_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned long>
- : public std::numeric_limits<unsigned long>,
- public detail::integer_traits_base<unsigned long, 0, ULONG_MAX>
-{ };
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T)
-#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>
- : public std::numeric_limits< ::boost::long_long_type>,
- public detail::integer_traits_base< ::boost::long_long_type, LLONG_MIN, LLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
- : public std::numeric_limits< ::boost::ulong_long_type>,
- public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULLONG_MAX>
-{ };
-
-#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type> : public std::numeric_limits< ::boost::long_long_type>, public detail::integer_traits_base< ::boost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ };
-template<>
-class integer_traits< ::boost::ulong_long_type>
- : public std::numeric_limits< ::boost::ulong_long_type>,
- public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONG_LONG_MAX>
-{ };
-
-#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>
- : public std::numeric_limits< ::boost::long_long_type>,
- public detail::integer_traits_base< ::boost::long_long_type, LONGLONG_MIN, LONGLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
- : public std::numeric_limits< ::boost::ulong_long_type>,
- public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONGLONG_MAX>
-{ };
-
-#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>
- : public std::numeric_limits< ::boost::long_long_type>,
- public detail::integer_traits_base< ::boost::long_long_type, -_LLONG_MAX - _C2, _LLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
- : public std::numeric_limits< ::boost::ulong_long_type>,
- public detail::integer_traits_base< ::boost::ulong_long_type, 0, _ULLONG_MAX>
-{ };
-
-#elif defined(BOOST_HAS_LONG_LONG)
-//
-// we have long long but no constants, this happens for example with gcc in -ansi mode,
-// we'll just have to work out the values for ourselves (assumes 2's compliment representation):
-//
-template<>
-class integer_traits< ::boost::long_long_type>
- : public std::numeric_limits< ::boost::long_long_type>,
- public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) - 1)), ~(1LL << (sizeof(::boost::long_long_type) - 1))>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
- : public std::numeric_limits< ::boost::ulong_long_type>,
- public detail::integer_traits_base< ::boost::ulong_long_type, 0, ~0uLL>
-{ };
-
-#endif
-#endif
-
-} // namespace boost
-
-#endif /* BOOST_INTEGER_TRAITS_HPP */
-
-
-
+++ /dev/null
-#ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED
-#define BOOST_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 <functional> // for std::less
-#include <iosfwd> // for std::basic_ostream
-
-
-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(): p_(0)
- {
- }
-
- intrusive_ptr(T * p, bool add_ref = true): p_(p)
- {
- if(p_ != 0 && add_ref) intrusive_ptr_add_ref(p_);
- }
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
- template<class U> intrusive_ptr(intrusive_ptr<U> const & rhs): p_(rhs.get())
- {
- if(p_ != 0) intrusive_ptr_add_ref(p_);
- }
-
-#endif
-
- intrusive_ptr(intrusive_ptr const & rhs): p_(rhs.p_)
- {
- if(p_ != 0) intrusive_ptr_add_ref(p_);
- }
-
- ~intrusive_ptr()
- {
- if(p_ != 0) intrusive_ptr_release(p_);
- }
-
-#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
-
- 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;
- }
-
- T * get() const
- {
- return p_;
- }
-
- T & operator*() const
- {
- return *p_;
- }
-
- T * operator->() const
- {
- return p_;
- }
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return p_ != 0;
- }
-
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- typedef T * (this_type::*unspecified_bool_type)() const;
-
- operator unspecified_bool_type() const // never throws
- {
- return p_ == 0? 0: &this_type::get;
- }
-
-#else
-
- typedef T * this_type::*unspecified_bool_type;
-
- operator unspecified_bool_type () const
- {
- return p_ == 0? 0: &this_type::p_;
- }
-
-#endif
-
- // operator! is a Borland-specific workaround
- bool operator! () const
- {
- return p_ == 0;
- }
-
- void swap(intrusive_ptr & rhs)
- {
- T * tmp = p_;
- p_ = rhs.p_;
- rhs.p_ = tmp;
- }
-
-private:
-
- T * p_;
-};
-
-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> inline bool operator==(intrusive_ptr<T> const & a, T * b)
-{
- return a.get() == b;
-}
-
-template<class T> inline bool operator!=(intrusive_ptr<T> const & a, T * b)
-{
- return a.get() != b;
-}
-
-template<class T> inline bool operator==(T * a, intrusive_ptr<T> const & b)
-{
- return a == b.get();
-}
-
-template<class T> inline bool operator!=(T * a, intrusive_ptr<T> 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(__GNUC__) && (__GNUC__ < 3)
-
-template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)
-{
- os << p.get();
- return os;
-}
-
-#else
-
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1200 && __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
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED
+++ /dev/null
-// Boost io_fwd.hpp header file --------------------------------------------//
-
-// Copyright 2002 Daryle Walker. Use, modification, and distribution are subject
-// to the Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
-
-// See <http://www.boost.org/libs/io/> for the library's home page.
-
-#ifndef BOOST_IO_FWD_HPP
-#define BOOST_IO_FWD_HPP
-
-#include <iosfwd> // for std::char_traits (declaration)
-
-
-namespace boost
-{
-namespace io
-{
-
-
-// From <boost/io/ios_state.hpp> -------------------------------------------//
-
-class ios_flags_saver;
-class ios_precision_saver;
-class ios_width_saver;
-class ios_base_all_saver;
-
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_iostate_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_exception_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_tie_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_rdbuf_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_fill_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_locale_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
- class basic_ios_all_saver;
-
-typedef basic_ios_iostate_saver<char> ios_iostate_saver;
-typedef basic_ios_iostate_saver<wchar_t> wios_iostate_saver;
-typedef basic_ios_exception_saver<char> ios_exception_saver;
-typedef basic_ios_exception_saver<wchar_t> wios_exception_saver;
-typedef basic_ios_tie_saver<char> ios_tie_saver;
-typedef basic_ios_tie_saver<wchar_t> wios_tie_saver;
-typedef basic_ios_rdbuf_saver<char> ios_rdbuf_saver;
-typedef basic_ios_rdbuf_saver<wchar_t> wios_rdbuf_saver;
-typedef basic_ios_fill_saver<char> ios_fill_saver;
-typedef basic_ios_fill_saver<wchar_t> wios_fill_saver;
-typedef basic_ios_locale_saver<char> ios_locale_saver;
-typedef basic_ios_locale_saver<wchar_t> wios_locale_saver;
-typedef basic_ios_all_saver<char> ios_all_saver;
-typedef basic_ios_all_saver<wchar_t> wios_all_saver;
-
-class ios_iword_saver;
-class ios_pword_saver;
-class ios_all_word_saver;
-
-
-} // namespace io
-} // namespace boost
-
-
-#endif // BOOST_IO_FWD_HPP
+++ /dev/null
-// interator.hpp workarounds for non-conforming standard libraries ---------//
-
-// (C) Copyright Beman Dawes 2000. Distributed under the 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/utility for documentation.
-
-// Revision History
-// 12 Jan 01 added <cstddef> for std::ptrdiff_t (Jens Maurer)
-// 28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams)
-// 26 Jun 00 Initial version (Jeremy Siek)
-
-#ifndef BOOST_ITERATOR_HPP
-#define BOOST_ITERATOR_HPP
-
-#include <iterator>
-#include <cstddef> // std::ptrdiff_t
-#include <boost/config.hpp>
-
-namespace boost
-{
-# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR)
- template <class Category, class T,
- class Distance = std::ptrdiff_t,
- class Pointer = T*, class Reference = T&>
- struct iterator
- {
- typedef T value_type;
- typedef Distance difference_type;
- typedef Pointer pointer;
- typedef Reference reference;
- typedef Category iterator_category;
- };
-# else
-
- // declare iterator_base in namespace detail to work around MSVC bugs which
- // prevent derivation from an identically-named class in a different namespace.
- namespace detail {
- template <class Category, class T, class Distance, class Pointer, class Reference>
-# if !defined(BOOST_MSVC_STD_ITERATOR)
- struct iterator_base : std::iterator<Category, T, Distance, Pointer, Reference> {};
-# else
- struct iterator_base : std::iterator<Category, T, Distance>
- {
- typedef Reference reference;
- typedef Pointer pointer;
- typedef Distance difference_type;
- };
-# endif
- }
-
- template <class Category, class T, class Distance = std::ptrdiff_t,
- class Pointer = T*, class Reference = T&>
- struct iterator : detail::iterator_base<Category, T, Distance, Pointer, Reference> {};
-# endif
-} // namespace boost
-
-#endif // BOOST_ITERATOR_HPP
+++ /dev/null
-// 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
+++ /dev/null
-// 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
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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)
-
-// no include guard multiple inclusion intended
-
-//
-// This is a temporary workaround until the bulk of this is
-// available in boost config.
-// 23/02/03 thw
-//
-
-#include <boost/config.hpp> // for prior
-#include <boost/detail/workaround.hpp>
-
-#ifdef BOOST_ITERATOR_CONFIG_DEF
-# error you have nested config_def #inclusion.
-#else
-# define BOOST_ITERATOR_CONFIG_DEF
-#endif
-
-// We enable this always now. Otherwise, the simple case in
-// libs/iterator/test/constant_iterator_arrow.cpp fails to compile
-// because the operator-> return is improperly deduced as a non-const
-// pointer.
-#if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531))
-
-// Recall that in general, compilers without partial specialization
-// can't strip constness. Consider counting_iterator, which normally
-// passes a const Value to iterator_facade. As a result, any code
-// which makes a std::vector of the iterator's value_type will fail
-// when its allocator declares functions overloaded on reference and
-// const_reference (the same type).
-//
-// Furthermore, Borland 5.5.1 drops constness in enough ways that we
-// end up using a proxy for operator[] when we otherwise shouldn't.
-// Using reference constness gives it an extra hint that it can
-// return the value_type from operator[] directly, but is not
-// strictly necessary. Not sure how best to resolve this one.
-
-# define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1
-
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531)) \
- || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \
- || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
-# define BOOST_NO_LVALUE_RETURN_DETECTION
-
-# if 0 // test code
- struct v {};
-
- typedef char (&no)[3];
-
- template <class T>
- no foo(T const&, ...);
-
- template <class T>
- char foo(T&, int);
-
-
- struct value_iterator
- {
- v operator*() const;
- };
-
- template <class T>
- struct lvalue_deref_helper
- {
- static T& x;
- enum { value = (sizeof(foo(*x,0)) == 1) };
- };
-
- int z2[(lvalue_deref_helper<v*>::value == 1) ? 1 : -1];
- int z[(lvalue_deref_helper<value_iterator>::value) == 1 ? -1 : 1 ];
-# endif
-
-#endif
-
-#if BOOST_WORKAROUND(__MWERKS__, <=0x2407)
-# define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types"
-#endif
-
-#if BOOST_WORKAROUND(__GNUC__, == 2) \
- || BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-# define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile:
-
-# if 0 // test code
- #include <boost/type_traits/is_convertible.hpp>
- template <class T>
- struct foo
- {
- foo(T);
-
- template <class U>
- foo(foo<U> const& other) : p(other.p) { }
-
- T p;
- };
-
- bool x = boost::is_convertible<foo<int const*>, foo<int*> >::value;
-# endif
-
-#endif
-
-#if BOOST_WORKAROUND(__GNUC__, == 2 && __GNUC_MINOR__ == 95) \
- || BOOST_WORKAROUND(__MWERKS__, <= 0x2407) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-# define BOOST_ITERATOR_NO_MPL_AUX_HAS_XXX // "MPL's has_xxx facility doesn't work"
-#endif
-
-#if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE))
-# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#endif
-
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-# define BOOST_ARG_DEPENDENT_TYPENAME typename
-# else
-# define BOOST_ARG_DEPENDENT_TYPENAME
-# endif
-
-# if BOOST_WORKAROUND(__GNUC__, == 2) && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(95)) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-
-// GCC-2.95 eagerly instantiates templated constructors and conversion
-// operators in convertibility checks, causing premature errors.
-//
-// Borland's problems are harder to diagnose due to lack of an
-// instantiation stack backtrace. They may be due in part to the fact
-// that it drops cv-qualification willy-nilly in templates.
-# define BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-# endif
-
-// no include guard; multiple inclusion intended
+++ /dev/null
-// (C) Copyright Thomas Witt 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)
-
-// no include guard multiple inclusion intended
-
-//
-// This is a temporary workaround until the bulk of this is
-// available in boost config.
-// 23/02/03 thw
-//
-
-#undef BOOST_NO_IS_CONVERTIBLE
-#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE
-#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#undef BOOST_ARG_DEPENDENT_TYPENAME
-#undef BOOST_NO_LVALUE_RETURN_DETECTION
-#undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-
-#ifdef BOOST_ITERATOR_CONFIG_DEF
-# undef BOOST_ITERATOR_CONFIG_DEF
-#else
-# error missing or nested #include config_def
-#endif
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_ENABLE_IF_23022003THW_HPP
-#define BOOST_ENABLE_IF_23022003THW_HPP
-
-#include <boost/detail/workaround.hpp>
-#include <boost/mpl/identity.hpp>
-
-#include <boost/iterator/detail/config_def.hpp>
-
-//
-// Boost iterators uses its own enable_if cause we need
-// special semantics for deficient compilers.
-// 23/02/03 thw
-//
-
-namespace boost
-{
-
- namespace iterators
- {
- //
- // Base machinery for all kinds of enable if
- //
- template<bool>
- struct enabled
- {
- template<typename T>
- struct base
- {
- typedef T type;
- };
- };
-
- //
- // For compilers that don't support "Substitution Failure Is Not An Error"
- // enable_if falls back to always enabled. See comments
- // on operator implementation for consequences.
- //
- template<>
- struct enabled<false>
- {
- template<typename T>
- struct base
- {
-#ifdef BOOST_NO_SFINAE
-
- typedef T type;
-
- // This way to do it would give a nice error message containing
- // invalid overload, but has the big disadvantage that
- // there is no reference to user code in the error message.
- //
- // struct invalid_overload;
- // typedef invalid_overload type;
- //
-#endif
- };
- };
-
-
- template <class Cond,
- class Return>
- struct enable_if
-# if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE)
- : enabled<(Cond::value)>::template base<Return>
-# else
- : mpl::identity<Return>
-# endif
- {
-# if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- typedef Return type;
-# endif
- };
-
- } // namespace iterators
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ENABLE_IF_23022003THW_HPP
+++ /dev/null
-// 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 FACADE_ITERATOR_CATEGORY_DWA20031118_HPP
-# define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP
-
-# include <boost/iterator/iterator_categories.hpp>
-
-# include <boost/static_assert.hpp>
-
-# include <boost/mpl/or.hpp> // used in iterator_tag inheritance logic
-# include <boost/mpl/and.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/identity.hpp>
-
-# include <boost/type_traits/is_same.hpp>
-# include <boost/type_traits/is_const.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_convertible.hpp>
-
-# include <boost/type_traits/is_same.hpp>
-
-# include <boost/iterator/detail/config_def.hpp> // try to keep this last
-
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-# include <boost/detail/indirect_traits.hpp>
-# endif
-
-//
-// iterator_category deduction for iterator_facade
-//
-
-// forward declaration
-namespace boost { struct use_default; }
-
-namespace boost { namespace detail {
-
-struct input_output_iterator_tag
- : std::input_iterator_tag
-{
- // Using inheritance for only input_iterator_tag helps to avoid
- // ambiguities when a stdlib implementation dispatches on a
- // function which is overloaded on both input_iterator_tag and
- // output_iterator_tag, as STLPort does, in its __valid_range
- // function. I claim it's better to avoid the ambiguity in these
- // cases.
- operator std::output_iterator_tag() const
- {
- return std::output_iterator_tag();
- }
-};
-
-//
-// True iff the user has explicitly disabled writability of this
-// iterator. Pass the iterator_facade's Value parameter and its
-// nested ::reference type.
-//
-template <class ValueParam, class Reference>
-struct iterator_writability_disabled
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic?
- : mpl::or_<
- is_const<Reference>
- , boost::detail::indirect_traits::is_reference_to_const<Reference>
- , is_const<ValueParam>
- >
-# else
- : is_const<ValueParam>
-# endif
-{};
-
-
-//
-// Convert an iterator_facade's traversal category, Value parameter,
-// and ::reference type to an appropriate old-style category.
-//
-// If writability has been disabled per the above metafunction, the
-// result will not be convertible to output_iterator_tag.
-//
-// Otherwise, if Traversal == single_pass_traversal_tag, the following
-// conditions will result in a tag that is convertible both to
-// input_iterator_tag and output_iterator_tag:
-//
-// 1. Reference is a reference to non-const
-// 2. Reference is not a reference and is convertible to Value
-//
-template <class Traversal, class ValueParam, class Reference>
-struct iterator_facade_default_category
- : mpl::eval_if<
- mpl::and_<
- is_reference<Reference>
- , is_convertible<Traversal,forward_traversal_tag>
- >
- , mpl::eval_if<
- is_convertible<Traversal,random_access_traversal_tag>
- , mpl::identity<std::random_access_iterator_tag>
- , mpl::if_<
- is_convertible<Traversal,bidirectional_traversal_tag>
- , std::bidirectional_iterator_tag
- , std::forward_iterator_tag
- >
- >
- , typename mpl::eval_if<
- mpl::and_<
- is_convertible<Traversal, single_pass_traversal_tag>
-
- // check for readability
- , is_convertible<Reference, ValueParam>
- >
- , mpl::identity<std::input_iterator_tag>
- , mpl::identity<Traversal>
- >
- >
-{
-};
-
-// True iff T is convertible to an old-style iterator category.
-template <class T>
-struct is_iterator_category
- : mpl::or_<
- is_convertible<T,std::input_iterator_tag>
- , is_convertible<T,std::output_iterator_tag>
- >
-{
-};
-
-template <class T>
-struct is_iterator_traversal
- : is_convertible<T,incrementable_traversal_tag>
-{};
-
-//
-// A composite iterator_category tag convertible to Category (a pure
-// old-style category) and Traversal (a pure traversal tag).
-// Traversal must be a strict increase of the traversal power given by
-// Category.
-//
-template <class Category, class Traversal>
-struct iterator_category_with_traversal
- : Category, Traversal
-{
-# if 0
- // Because of limitations on multiple user-defined conversions,
- // this should be a good test of whether convertibility is enough
- // in the spec, or whether we need to specify inheritance.
- operator Category() const { return Category(); }
- operator Traversal() const { return Traversal(); }
-# endif
-
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- // Make sure this isn't used to build any categories where
- // convertibility to Traversal is redundant. Should just use the
- // Category element in that case.
- BOOST_STATIC_ASSERT(
- !(is_convertible<
- typename iterator_category_to_traversal<Category>::type
- , Traversal
- >::value));
-
- BOOST_STATIC_ASSERT(is_iterator_category<Category>::value);
- BOOST_STATIC_ASSERT(!is_iterator_category<Traversal>::value);
- BOOST_STATIC_ASSERT(!is_iterator_traversal<Category>::value);
-# if !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
- BOOST_STATIC_ASSERT(is_iterator_traversal<Traversal>::value);
-# endif
-# endif
-};
-
-// Computes an iterator_category tag whose traversal is Traversal and
-// which is appropriate for an iterator
-template <class Traversal, class ValueParam, class Reference>
-struct facade_iterator_category_impl
-{
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- BOOST_STATIC_ASSERT(!is_iterator_category<Traversal>::value);
-# endif
-
- typedef typename iterator_facade_default_category<
- Traversal,ValueParam,Reference
- >::type category;
-
- typedef typename mpl::if_<
- is_same<
- Traversal
- , typename iterator_category_to_traversal<category>::type
- >
- , category
- , iterator_category_with_traversal<category,Traversal>
- >::type type;
-};
-
-//
-// Compute an iterator_category for iterator_facade
-//
-template <class CategoryOrTraversal, class ValueParam, class Reference>
-struct facade_iterator_category
- : mpl::eval_if<
- is_iterator_category<CategoryOrTraversal>
- , mpl::identity<CategoryOrTraversal> // old-style categories are fine as-is
- , facade_iterator_category_impl<CategoryOrTraversal,ValueParam,Reference>
- >
-{
-};
-
-}} // namespace boost::detail
-
-# include <boost/iterator/detail/config_undef.hpp>
-
-#endif // FACADE_ITERATOR_CATEGORY_DWA20031118_HPP
+++ /dev/null
-// 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 MINIMUM_CATEGORY_DWA20031119_HPP
-# define MINIMUM_CATEGORY_DWA20031119_HPP
-
-# include <boost/type_traits/is_convertible.hpp>
-# include <boost/type_traits/is_same.hpp>
-
-# include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace detail {
-//
-// Returns the minimum category type or error_type
-// if T1 and T2 are unrelated.
-//
-// For compilers not supporting is_convertible this only
-// works with the new boost return and traversal category
-// types. The exact boost _types_ are required. No derived types
-// will work.
-//
-//
-template <bool GreaterEqual, bool LessEqual>
-struct minimum_category_impl
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
-{
- template <class T1, class T2> struct apply
- {
- typedef T2 type;
- };
- typedef void type;
-}
-# endif
-;
-
-template <class T1, class T2>
-struct error_not_related_by_convertibility;
-
-template <>
-struct minimum_category_impl<true,false>
-{
- template <class T1, class T2> struct apply
- {
- typedef T2 type;
- };
-};
-
-template <>
-struct minimum_category_impl<false,true>
-{
- template <class T1, class T2> struct apply
- {
- typedef T1 type;
- };
-};
-
-template <>
-struct minimum_category_impl<true,true>
-{
- template <class T1, class T2> struct apply
- {
- BOOST_STATIC_ASSERT((is_same<T1,T2>::value));
- typedef T1 type;
- };
-};
-
-template <>
-struct minimum_category_impl<false,false>
-{
- template <class T1, class T2> struct apply
- : error_not_related_by_convertibility<T1,T2>
- {
- };
-};
-
-template <class T1 = mpl::_1, class T2 = mpl::_2>
-struct minimum_category
-{
- typedef minimum_category_impl<
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) // ETI workaround
- is_same<T2,int>::value ||
-# endif
- ::boost::is_convertible<T1,T2>::value
- , ::boost::is_convertible<T2,T1>::value
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) // ETI workaround
- || is_same<T1,int>::value
-# endif
- > outer;
-
- typedef typename outer::template apply<T1,T2> inner;
- typedef typename inner::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,minimum_category,(T1,T2))
-};
-
-template <>
-struct minimum_category<mpl::_1,mpl::_2>
-{
- template <class T1, class T2>
- struct apply : minimum_category<T1,T2>
- {};
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,minimum_category,(mpl::_1,mpl::_2))
-};
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) // ETI workaround
-template <>
-struct minimum_category<int,int>
-{
- typedef int type;
-};
-# endif
-
-}} // namespace boost::detail
-
-#endif // MINIMUM_CATEGORY_DWA20031119_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_FILTER_ITERATOR_23022003THW_HPP
-#define BOOST_FILTER_ITERATOR_23022003THW_HPP
-
-#include <boost/iterator.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/iterator/iterator_categories.hpp>
-
-#include <boost/type_traits/is_class.hpp>
-#include <boost/static_assert.hpp>
-
-namespace boost
-{
- template <class Predicate, class Iterator>
- class filter_iterator;
-
- namespace detail
- {
- template <class Predicate, class Iterator>
- struct filter_iterator_base
- {
- typedef iterator_adaptor<
- filter_iterator<Predicate, Iterator>
- , Iterator
- , use_default
- , typename mpl::if_<
- is_convertible<
- typename iterator_traversal<Iterator>::type
- , random_access_traversal_tag
- >
- , bidirectional_traversal_tag
- , use_default
- >::type
- > type;
- };
- }
-
- template <class Predicate, class Iterator>
- class filter_iterator
- : public detail::filter_iterator_base<Predicate, Iterator>::type
- {
- typedef typename detail::filter_iterator_base<
- Predicate, Iterator
- >::type super_t;
-
- friend class iterator_core_access;
-
- public:
- filter_iterator() { }
-
- filter_iterator(Predicate f, Iterator x, Iterator end = Iterator())
- : super_t(x), m_predicate(f), m_end(end)
- {
- satisfy_predicate();
- }
-
- filter_iterator(Iterator x, Iterator end = Iterator())
- : super_t(x), m_predicate(), m_end(end)
- {
- // Pro8 is a little too aggressive about instantiating the
- // body of this function.
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- // Don't allow use of this constructor if Predicate is a
- // function pointer type, since it will be 0.
- BOOST_STATIC_ASSERT(is_class<Predicate>::value);
-#endif
- satisfy_predicate();
- }
-
- template<class OtherIterator>
- filter_iterator(
- filter_iterator<Predicate, OtherIterator> const& t
- , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
- )
- : super_t(t.base()), m_predicate(t.predicate()), m_end(t.end()) {}
-
- Predicate predicate() const { return m_predicate; }
-
- Iterator end() const { return m_end; }
-
- private:
- void increment()
- {
- ++(this->base_reference());
- satisfy_predicate();
- }
-
- void decrement()
- {
- while(!this->m_predicate(*--(this->base_reference()))){};
- }
-
- void satisfy_predicate()
- {
- while (this->base() != this->m_end && !this->m_predicate(*this->base()))
- ++(this->base_reference());
- }
-
- // Probably should be the initial base class so it can be
- // optimized away via EBO if it is an empty class.
- Predicate m_predicate;
- Iterator m_end;
- };
-
- template <class Predicate, class Iterator>
- filter_iterator<Predicate,Iterator>
- make_filter_iterator(Predicate f, Iterator x, Iterator end = Iterator())
- {
- return filter_iterator<Predicate,Iterator>(f,x,end);
- }
-
- template <class Predicate, class Iterator>
- filter_iterator<Predicate,Iterator>
- make_filter_iterator(
- typename iterators::enable_if<
- is_class<Predicate>
- , Iterator
- >::type x
- , Iterator end = Iterator()
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- , Predicate* = 0
-#endif
- )
- {
- return filter_iterator<Predicate,Iterator>(x,end);
- }
-
-} // namespace boost
-
-#endif // BOOST_FILTER_ITERATOR_23022003THW_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_INDIRECT_ITERATOR_23022003THW_HPP
-#define BOOST_INDIRECT_ITERATOR_23022003THW_HPP
-
-#include <boost/iterator.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-
-#include <boost/pointee.hpp>
-#include <boost/indirect_reference.hpp>
-#include <boost/detail/iterator.hpp>
-
-#include <boost/detail/indirect_traits.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/add_reference.hpp>
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/has_xxx.hpp>
-
-#ifdef BOOST_MPL_CFG_NO_HAS_XXX
-# include <boost/shared_ptr.hpp>
-# include <boost/scoped_ptr.hpp>
-# include <boost/mpl/bool.hpp>
-# include <memory>
-#endif
-
-#include <boost/iterator/detail/config_def.hpp> // must be last #include
-
-namespace boost
-{
- template <class Iter, class Value, class Category, class Reference, class Difference>
- class indirect_iterator;
-
- namespace detail
- {
- template <class Iter, class Value, class Category, class Reference, class Difference>
- struct indirect_base
- {
- typedef typename iterator_traits<Iter>::value_type dereferenceable;
-
- typedef iterator_adaptor<
- indirect_iterator<Iter, Value, Category, Reference, Difference>
- , Iter
- , typename ia_dflt_help<
- Value, pointee<dereferenceable>
- >::type
- , Category
- , typename ia_dflt_help<
- Reference
- , mpl::eval_if<
- is_same<Value,use_default>
- , indirect_reference<dereferenceable>
- , add_reference<Value>
- >
- >::type
- , Difference
- > type;
- };
-
- template <>
- struct indirect_base<int, int, int, int, int> {};
- } // namespace detail
-
-
- template <
- class Iterator
- , class Value = use_default
- , class Category = use_default
- , class Reference = use_default
- , class Difference = use_default
- >
- class indirect_iterator
- : public detail::indirect_base<
- Iterator, Value, Category, Reference, Difference
- >::type
- {
- typedef typename detail::indirect_base<
- Iterator, Value, Category, Reference, Difference
- >::type super_t;
-
- friend class iterator_core_access;
-
- public:
- indirect_iterator() {}
-
- indirect_iterator(Iterator iter)
- : super_t(iter) {}
-
- template <
- class Iterator2, class Value2, class Category2
- , class Reference2, class Difference2
- >
- indirect_iterator(
- indirect_iterator<
- Iterator2, Value2, Category2, Reference2, Difference2
- > const& y
- , typename enable_if_convertible<Iterator2, Iterator>::type* = 0
- )
- : super_t(y.base())
- {}
-
- private:
- typename super_t::reference dereference() const
- {
-# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
- return const_cast<super_t::reference>(**this->base());
-# else
- return **this->base();
-# endif
- }
- };
-
- template <class Iter>
- inline
- indirect_iterator<Iter> make_indirect_iterator(Iter x)
- {
- return indirect_iterator<Iter>(x);
- }
-
- template <class Traits, class Iter>
- inline
- indirect_iterator<Iter,Traits> make_indirect_iterator(Iter x, Traits* = 0)
- {
- return indirect_iterator<Iter, Traits>(x);
- }
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_INDIRECT_ITERATOR_23022003THW_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_INTEROPERABLE_23022003THW_HPP
-# define BOOST_INTEROPERABLE_23022003THW_HPP
-
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/or.hpp>
-
-# include <boost/type_traits/is_convertible.hpp>
-
-# include <boost/iterator/detail/config_def.hpp> // must appear last
-
-namespace boost
-{
-
- //
- // Meta function that determines whether two
- // iterator types are considered interoperable.
- //
- // Two iterator types A,B are considered interoperable if either
- // A is convertible to B or vice versa.
- // This interoperability definition is in sync with the
- // standards requirements on constant/mutable container
- // iterators (23.1 [lib.container.requirements]).
- //
- // For compilers that don't support is_convertible
- // is_interoperable gives false positives. See comments
- // on operator implementation for consequences.
- //
- template <typename A, typename B>
- struct is_interoperable
-# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
- : mpl::true_
-# else
- : mpl::or_<
- is_convertible< A, B >
- , is_convertible< B, A > >
-# endif
- {
- };
-
-} // namespace boost
-
-# include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_INTEROPERABLE_23022003THW_HPP
+++ /dev/null
-// 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
+++ /dev/null
-// 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
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_ADAPTOR_23022003THW_HPP
-#define BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
-
-#include <boost/static_assert.hpp>
-#include <boost/iterator.hpp>
-#include <boost/detail/iterator.hpp>
-
-#include <boost/iterator/iterator_categories.hpp>
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/iterator/detail/enable_if.hpp>
-
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/or.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-#ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-# include <boost/type_traits/remove_reference.hpp>
-#else
-# include <boost/type_traits/add_reference.hpp>
-#endif
-
-#include <boost/iterator/detail/config_def.hpp>
-
-#include <boost/iterator/iterator_traits.hpp>
-
-namespace boost
-{
- // Used as a default template argument internally, merely to
- // indicate "use the default", this can also be passed by users
- // explicitly in order to specify that the default should be used.
- struct use_default;
-
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // the incompleteness of use_default causes massive problems for
- // is_convertible (naturally). This workaround is fortunately not
- // needed for vc6/vc7.
- template<class To>
- struct is_convertible<use_default,To>
- : mpl::false_ {};
-# endif
-
- namespace detail
- {
-
- //
- // Result type used in enable_if_convertible meta function.
- // This can be an incomplete type, as only pointers to
- // enable_if_convertible< ... >::type are used.
- // We could have used void for this, but conversion to
- // void* is just to easy.
- //
- struct enable_type;
- }
-
-
- //
- // enable_if for use in adapted iterators constructors.
- //
- // In order to provide interoperability between adapted constant and
- // mutable iterators, adapted iterators will usually provide templated
- // conversion constructors of the following form
- //
- // template <class BaseIterator>
- // class adapted_iterator :
- // public iterator_adaptor< adapted_iterator<Iterator>, Iterator >
- // {
- // public:
- //
- // ...
- //
- // template <class OtherIterator>
- // adapted_iterator(
- // OtherIterator const& it
- // , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0);
- //
- // ...
- // };
- //
- // enable_if_convertible is used to remove those overloads from the overload
- // set that cannot be instantiated. For all practical purposes only overloads
- // for constant/mutable interaction will remain. This has the advantage that
- // meta functions like boost::is_convertible do not return false positives,
- // as they can only look at the signature of the conversion constructor
- // and not at the actual instantiation.
- //
- // enable_if_interoperable can be safely used in user code. It falls back to
- // always enabled for compilers that don't support enable_if or is_convertible.
- // There is no need for compiler specific workarounds in user code.
- //
- // The operators implementation relies on boost::is_convertible not returning
- // false positives for user/library defined iterator types. See comments
- // on operator implementation for consequences.
- //
-# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
- template<typename From, typename To>
- struct enable_if_convertible
- {
- typedef typename mpl::if_<
- mpl::or_<
- is_same<From,To>
- , is_convertible<From, To>
- >
- , detail::enable_type
- , int&
- >::type type;
- };
-
-# elif defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_SFINAE)
-
- template <class From, class To>
- struct enable_if_convertible
- {
- typedef detail::enable_type type;
- };
-
-# elif BOOST_WORKAROUND(_MSC_FULL_VER, BOOST_TESTED_AT(13102292)) && BOOST_MSVC > 1300
-
- // For some reason vc7.1 needs us to "cut off" instantiation
- // of is_convertible in a few cases.
- template<typename From, typename To>
- struct enable_if_convertible
- : iterators::enable_if<
- mpl::or_<
- is_same<From,To>
- , is_convertible<From, To>
- >
- , detail::enable_type
- >
- {};
-
-# else
-
- template<typename From, typename To>
- struct enable_if_convertible
- : iterators::enable_if<
- is_convertible<From, To>
- , detail::enable_type
- >
- {};
-
-# endif
-
- //
- // Default template argument handling for iterator_adaptor
- //
- namespace detail
- {
- // If T is use_default, return the result of invoking
- // DefaultNullaryFn, otherwise return T.
- template <class T, class DefaultNullaryFn>
- struct ia_dflt_help
- : mpl::eval_if<
- is_same<T, use_default>
- , DefaultNullaryFn
- , mpl::identity<T>
- >
- {
- };
-
- // A metafunction which computes an iterator_adaptor's base class,
- // a specialization of iterator_facade.
- template <
- class Derived
- , class Base
- , class Value
- , class Traversal
- , class Reference
- , class Difference
- >
- struct iterator_adaptor_base
- {
- typedef iterator_facade<
- Derived
-
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
- , typename detail::ia_dflt_help<
- Value
- , mpl::eval_if<
- is_same<Reference,use_default>
- , iterator_value<Base>
- , remove_reference<Reference>
- >
- >::type
-# else
- , typename detail::ia_dflt_help<
- Value, iterator_value<Base>
- >::type
-# endif
-
- , typename detail::ia_dflt_help<
- Traversal
- , iterator_traversal<Base>
- >::type
-
- , typename detail::ia_dflt_help<
- Reference
- , mpl::eval_if<
- is_same<Value,use_default>
- , iterator_reference<Base>
- , add_reference<Value>
- >
- >::type
-
- , typename detail::ia_dflt_help<
- Difference, iterator_difference<Base>
- >::type
- >
- type;
- };
-
- // workaround for aC++ CR JAGaf33512
- template <class Tr1, class Tr2>
- inline void iterator_adaptor_assert_traversal ()
- {
- BOOST_STATIC_ASSERT((is_convertible<Tr1, Tr2>::value));
- }
- }
-
- //
- // Iterator Adaptor
- //
- // The parameter ordering changed slightly with respect to former
- // versions of iterator_adaptor The idea is that when the user needs
- // to fiddle with the reference type it is highly likely that the
- // iterator category has to be adjusted as well. Any of the
- // following four template arguments may be ommitted or explicitly
- // replaced by use_default.
- //
- // Value - if supplied, the value_type of the resulting iterator, unless
- // const. If const, a conforming compiler strips constness for the
- // value_type. If not supplied, iterator_traits<Base>::value_type is used
- //
- // Category - the traversal category of the resulting iterator. If not
- // supplied, iterator_traversal<Base>::type is used.
- //
- // Reference - the reference type of the resulting iterator, and in
- // particular, the result type of operator*(). If not supplied but
- // Value is supplied, Value& is used. Otherwise
- // iterator_traits<Base>::reference is used.
- //
- // Difference - the difference_type of the resulting iterator. If not
- // supplied, iterator_traits<Base>::difference_type is used.
- //
- template <
- class Derived
- , class Base
- , class Value = use_default
- , class Traversal = use_default
- , class Reference = use_default
- , class Difference = use_default
- >
- class iterator_adaptor
- : public detail::iterator_adaptor_base<
- Derived, Base, Value, Traversal, Reference, Difference
- >::type
- {
- friend class iterator_core_access;
-
- protected:
- typedef typename detail::iterator_adaptor_base<
- Derived, Base, Value, Traversal, Reference, Difference
- >::type super_t;
- public:
- iterator_adaptor() {}
-
- explicit iterator_adaptor(Base const &iter)
- : m_iterator(iter)
- {
- }
-
- typedef Base base_type;
-
- Base const& base() const
- { return m_iterator; }
-
- protected:
- // for convenience in derived classes
- typedef iterator_adaptor<Derived,Base,Value,Traversal,Reference,Difference> iterator_adaptor_;
-
- //
- // lvalue access to the Base object for Derived
- //
- Base const& base_reference() const
- { return m_iterator; }
-
- Base& base_reference()
- { return m_iterator; }
-
- private:
- //
- // Core iterator interface for iterator_facade. This is private
- // to prevent temptation for Derived classes to use it, which
- // will often result in an error. Derived classes should use
- // base_reference(), above, to get direct access to m_iterator.
- //
- typename super_t::reference dereference() const
- { return *m_iterator; }
-
- template <
- class OtherDerived, class OtherIterator, class V, class C, class R, class D
- >
- bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const
- {
- // Maybe readd with same_distance
- // BOOST_STATIC_ASSERT(
- // (detail::same_category_and_difference<Derived,OtherDerived>::value)
- // );
- return m_iterator == x.base();
- }
-
- typedef typename iterator_category_to_traversal<
- typename super_t::iterator_category
- >::type my_traversal;
-
-# define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \
- detail::iterator_adaptor_assert_traversal<my_traversal, cat>();
-
- void advance(typename super_t::difference_type n)
- {
- BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
- m_iterator += n;
- }
-
- void increment() { ++m_iterator; }
-
- void decrement()
- {
- BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag)
- --m_iterator;
- }
-
- template <
- class OtherDerived, class OtherIterator, class V, class C, class R, class D
- >
- typename super_t::difference_type distance_to(
- iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const
- {
- BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
- // Maybe readd with same_distance
- // BOOST_STATIC_ASSERT(
- // (detail::same_category_and_difference<Derived,OtherDerived>::value)
- // );
- return y.base() - m_iterator;
- }
-
-# undef BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL
-
- private: // data members
- Base m_iterator;
- };
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
+++ /dev/null
-// (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)
- {}
- };
- };
-
- 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())
- {}
- typedef std::ptrdiff_t difference_type;
- };
- };
-
- 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
+++ /dev/null
-// (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_CATEGORIES_HPP
-# define BOOST_ITERATOR_CATEGORIES_HPP
-
-# include <boost/config.hpp>
-# include <boost/detail/iterator.hpp>
-# include <boost/iterator/detail/config_def.hpp>
-
-# include <boost/detail/workaround.hpp>
-
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/identity.hpp>
-# include <boost/mpl/placeholders.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-
-# include <boost/type_traits/is_convertible.hpp>
-
-# include <boost/static_assert.hpp>
-
-namespace boost {
-
-//
-// Traversal Categories
-//
-
-struct no_traversal_tag {};
-
-struct incrementable_traversal_tag
- : no_traversal_tag
-{
-// incrementable_traversal_tag() {}
-// incrementable_traversal_tag(std::output_iterator_tag const&) {};
-};
-
-struct single_pass_traversal_tag
- : incrementable_traversal_tag
-{
-// single_pass_traversal_tag() {}
-// single_pass_traversal_tag(std::input_iterator_tag const&) {};
-};
-
-struct forward_traversal_tag
- : single_pass_traversal_tag
-{
-// forward_traversal_tag() {}
-// forward_traversal_tag(std::forward_iterator_tag const&) {};
-};
-
-struct bidirectional_traversal_tag
- : forward_traversal_tag
-{
-// bidirectional_traversal_tag() {};
-// bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {};
-};
-
-struct random_access_traversal_tag
- : bidirectional_traversal_tag
-{
-// random_access_traversal_tag() {};
-// random_access_traversal_tag(std::random_access_iterator_tag const&) {};
-};
-
-namespace detail
-{
- //
- // Convert a "strictly old-style" iterator category to a traversal
- // tag. This is broken out into a separate metafunction to reduce
- // the cost of instantiating iterator_category_to_traversal, below,
- // for new-style types.
- //
- template <class Cat>
- struct old_category_to_traversal
- : mpl::eval_if<
- is_convertible<Cat,std::random_access_iterator_tag>
- , mpl::identity<random_access_traversal_tag>
- , mpl::eval_if<
- is_convertible<Cat,std::bidirectional_iterator_tag>
- , mpl::identity<bidirectional_traversal_tag>
- , mpl::eval_if<
- is_convertible<Cat,std::forward_iterator_tag>
- , mpl::identity<forward_traversal_tag>
- , mpl::eval_if<
- is_convertible<Cat,std::input_iterator_tag>
- , mpl::identity<single_pass_traversal_tag>
- , mpl::eval_if<
- is_convertible<Cat,std::output_iterator_tag>
- , mpl::identity<incrementable_traversal_tag>
- , void
- >
- >
- >
- >
- >
- {};
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- template <>
- struct old_category_to_traversal<int>
- {
- typedef int type;
- };
-# endif
-
- template <class Traversal>
- struct pure_traversal_tag
- : mpl::eval_if<
- is_convertible<Traversal,random_access_traversal_tag>
- , mpl::identity<random_access_traversal_tag>
- , mpl::eval_if<
- is_convertible<Traversal,bidirectional_traversal_tag>
- , mpl::identity<bidirectional_traversal_tag>
- , mpl::eval_if<
- is_convertible<Traversal,forward_traversal_tag>
- , mpl::identity<forward_traversal_tag>
- , mpl::eval_if<
- is_convertible<Traversal,single_pass_traversal_tag>
- , mpl::identity<single_pass_traversal_tag>
- , mpl::eval_if<
- is_convertible<Traversal,incrementable_traversal_tag>
- , mpl::identity<incrementable_traversal_tag>
- , void
- >
- >
- >
- >
- >
- {
- };
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- template <>
- struct pure_traversal_tag<int>
- {
- typedef int type;
- };
-# endif
-
-} // namespace detail
-
-
-//
-// Convert an iterator category into a traversal tag
-//
-template <class Cat>
-struct iterator_category_to_traversal
- : mpl::eval_if< // if already convertible to a traversal tag, we're done.
- is_convertible<Cat,incrementable_traversal_tag>
- , mpl::identity<Cat>
- , detail::old_category_to_traversal<Cat>
- >
-{};
-
-// Trait to get an iterator's traversal category
-template <class Iterator = mpl::_1>
-struct iterator_traversal
- : iterator_category_to_traversal<
- typename boost::detail::iterator_traits<Iterator>::iterator_category
- >
-{};
-
-# 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_traversal<mpl::_1>
-{
- template <class T>
- struct apply : iterator_traversal<T>
- {};
-};
-template <>
-struct iterator_traversal<mpl::_>
- : iterator_traversal<mpl::_1>
-{};
-# endif
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ITERATOR_CATEGORIES_HPP
+++ /dev/null
-// (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
-
-// Revision History
-// 26 Apr 2003 thw
-// Adapted to new iterator concepts
-// 22 Nov 2002 Thomas Witt
-// Added interoperable concept.
-
-#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/type_traits/is_convertible.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>
-
-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.
-
- // We use this in place of STATIC_ASSERT((is_convertible<...>))
- // because some compilers (CWPro7.x) can't detect convertibility.
- //
- // Of course, that just gets us a different error at the moment with
- // some tests, since new iterator category deduction still depends
- // on convertibility detection. We might need some specializations
- // to support this compiler.
- template <class Target, class Source>
- struct static_assert_base_and_derived
- {
- static_assert_base_and_derived(Target* = (Source*)0) {}
- };
-
- //===========================================================================
- // Iterator Access Concepts
-
- template <typename Iterator>
- class ReadableIteratorConcept {
- public:
- typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type value_type;
-
- void constraints() {
- boost::function_requires< boost::AssignableConcept<Iterator> >();
- boost::function_requires< boost::CopyConstructibleConcept<Iterator> >();
-
- value_type v = *i;
- boost::ignore_unused_variable_warning(v);
- }
- Iterator i;
- };
-
- template <
- typename Iterator
- , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type
- >
- class WritableIteratorConcept {
- public:
-
- void constraints() {
- boost::function_requires< boost::CopyConstructibleConcept<Iterator> >();
- *i = v;
- }
- ValueType v;
- Iterator i;
- };
-
- template <typename Iterator>
- class SwappableIteratorConcept {
- public:
-
- void constraints() {
- std::iter_swap(i1, i2);
- }
- Iterator i1;
- Iterator i2;
- };
-
- template <typename Iterator>
- class LvalueIteratorConcept
- {
- public:
- typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;
- void constraints()
- {
- value_type& r = const_cast<value_type&>(*i);
- boost::ignore_unused_variable_warning(r);
- }
- Iterator i;
- };
-
-
- //===========================================================================
- // Iterator Traversal Concepts
-
- template <typename Iterator>
- class IncrementableIteratorConcept {
- public:
- typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
-
- void constraints() {
- boost::function_requires< boost::AssignableConcept<Iterator> >();
- boost::function_requires< boost::CopyConstructibleConcept<Iterator> >();
-
- BOOST_STATIC_ASSERT(
- (boost::is_convertible<
- traversal_category
- , boost::incrementable_traversal_tag
- >::value
- ));
-
- ++i;
- (void)i++;
- }
- Iterator i;
- };
-
- template <typename Iterator>
- class SinglePassIteratorConcept {
- public:
- typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
- typedef typename boost::detail::iterator_traits<Iterator>::difference_type difference_type;
-
- void constraints() {
- boost::function_requires< IncrementableIteratorConcept<Iterator> >();
- boost::function_requires< boost::EqualityComparableConcept<Iterator> >();
-
- BOOST_STATIC_ASSERT(
- (boost::is_convertible<
- traversal_category
- , boost::single_pass_traversal_tag
- >::value
- ));
- }
- };
-
- template <typename Iterator>
- class ForwardTraversalConcept {
- public:
- typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
- typedef typename boost::detail::iterator_traits<Iterator>::difference_type difference_type;
-
- void constraints() {
- boost::function_requires< SinglePassIteratorConcept<Iterator> >();
- boost::function_requires<
- boost::DefaultConstructibleConcept<Iterator> >();
-
- typedef boost::mpl::and_<
- boost::is_integral<difference_type>,
- boost::mpl::bool_< std::numeric_limits<difference_type>::is_signed >
- > difference_type_is_signed_integral;
-
- BOOST_STATIC_ASSERT(difference_type_is_signed_integral::value);
- BOOST_STATIC_ASSERT(
- (boost::is_convertible<
- traversal_category
- , boost::forward_traversal_tag
- >::value
- ));
- }
- };
-
- template <typename Iterator>
- class BidirectionalTraversalConcept {
- public:
- typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
-
- void constraints() {
- boost::function_requires< ForwardTraversalConcept<Iterator> >();
-
- BOOST_STATIC_ASSERT(
- (boost::is_convertible<
- traversal_category
- , boost::bidirectional_traversal_tag
- >::value
- ));
-
- --i;
- (void)i--;
- }
- Iterator i;
- };
-
- template <typename Iterator>
- class RandomAccessTraversalConcept {
- public:
- typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
- typedef typename boost::detail::iterator_traits<Iterator>::difference_type
- difference_type;
-
- void constraints() {
- boost::function_requires< BidirectionalTraversalConcept<Iterator> >();
-
- BOOST_STATIC_ASSERT(
- (boost::is_convertible<
- traversal_category
- , boost::random_access_traversal_tag
- >::value
- ));
-
- i += n;
- i = i + n;
- i = n + i;
- i -= n;
- i = i - n;
- n = i - j;
- }
- difference_type n;
- Iterator i, j;
- };
-
- //===========================================================================
- // Iterator Interoperability Concept
-
- 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;
- }
-
- 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;
- }
- template <typename Iterator1, typename Iterator2>
- void interop_rand_access_constraints(Iterator1 const& i1, Iterator2 const& i2,
- boost::single_pass_traversal_tag, boost::single_pass_traversal_tag)
- { }
-
- } // namespace detail
-
- template <typename Iterator, typename ConstIterator>
- class InteroperableIteratorConcept
- {
- public:
- 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;
-
- void constraints()
- {
- boost::function_requires< SinglePassIteratorConcept<Iterator> >();
- boost::function_requires< SinglePassIteratorConcept<ConstIterator> >();
-
- detail::interop_single_pass_constraints(i, ci);
- detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());
-
- ci = i;
- }
- Iterator i;
- ConstIterator ci;
- };
-
-} // namespace boost_concepts
-
-
-#endif // BOOST_ITERATOR_CONCEPTS_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_FACADE_23022003THW_HPP
-#define BOOST_ITERATOR_FACADE_23022003THW_HPP
-
-#include <boost/iterator.hpp>
-#include <boost/iterator/interoperable.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-
-#include <boost/iterator/detail/facade_iterator_category.hpp>
-#include <boost/iterator/detail/enable_if.hpp>
-
-#include <boost/implicit_cast.hpp>
-#include <boost/static_assert.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-
-#include <boost/iterator/detail/config_def.hpp> // this goes last
-
-namespace boost
-{
- // This forward declaration is required for the friend declaration
- // in iterator_core_access
- template <class I, class V, class TC, class R, class D> class iterator_facade;
-
- namespace detail
- {
- // A binary metafunction class that always returns bool. VC6
- // ICEs on mpl::always<bool>, probably because of the default
- // parameters.
- struct always_bool2
- {
- template <class T, class U>
- struct apply
- {
- typedef bool type;
- };
- };
-
- //
- // enable if for use in operator implementation.
- //
- template <
- class Facade1
- , class Facade2
- , class Return
- >
- struct enable_if_interoperable
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- {
- typedef typename mpl::if_<
- mpl::or_<
- is_convertible<Facade1, Facade2>
- , is_convertible<Facade2, Facade1>
- >
- , Return
- , int[3]
- >::type type;
- };
-#else
- : ::boost::iterators::enable_if<
- mpl::or_<
- is_convertible<Facade1, Facade2>
- , is_convertible<Facade2, Facade1>
- >
- , Return
- >
- {};
-#endif
-
- //
- // Generates associated types for an iterator_facade with the
- // given parameters.
- //
- template <
- class ValueParam
- , class CategoryOrTraversal
- , class Reference
- , class Difference
- >
- struct iterator_facade_types
- {
- typedef typename facade_iterator_category<
- CategoryOrTraversal, ValueParam, Reference
- >::type iterator_category;
-
- typedef typename remove_const<ValueParam>::type value_type;
-
- typedef typename mpl::eval_if<
- detail::iterator_writability_disabled<ValueParam,Reference>
- , add_pointer<const value_type>
- , add_pointer<value_type>
- >::type pointer;
-
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452)) \
- || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, BOOST_TESTED_AT(310))) \
- || BOOST_WORKAROUND(BOOST_RWSTD_VER, BOOST_TESTED_AT(0x20101)) \
- || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 310)
-
- // To interoperate with some broken library/compiler
- // combinations, user-defined iterators must be derived from
- // std::iterator. It is possible to implement a standard
- // library for broken compilers without this limitation.
-# define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1
-
- typedef
- iterator<iterator_category, value_type, Difference, pointer, Reference>
- base;
-# endif
- };
-
- // iterators whose dereference operators reference the same value
- // for all iterators into the same sequence (like many input
- // iterators) need help with their postfix ++: the referenced
- // value must be read and stored away before the increment occurs
- // so that *a++ yields the originally referenced element and not
- // the next one.
- template <class Iterator>
- class postfix_increment_proxy
- {
- typedef typename iterator_value<Iterator>::type value_type;
- public:
- explicit postfix_increment_proxy(Iterator const& x)
- : stored_value(*x)
- {}
-
- // Returning a mutable reference allows nonsense like
- // (*r++).mutate(), but it imposes fewer assumptions about the
- // behavior of the value_type. In particular, recall taht
- // (*r).mutate() is legal if operator* returns by value.
- value_type&
- operator*() const
- {
- return this->stored_value;
- }
- private:
- mutable value_type stored_value;
- };
-
- //
- // In general, we can't determine that such an iterator isn't
- // writable -- we also need to store a copy of the old iterator so
- // that it can be written into.
- template <class Iterator>
- class writable_postfix_increment_proxy
- {
- typedef typename iterator_value<Iterator>::type value_type;
- public:
- explicit writable_postfix_increment_proxy(Iterator const& x)
- : stored_value(*x)
- , stored_iterator(x)
- {}
-
- // Dereferencing must return a proxy so that both *r++ = o and
- // value_type(*r++) can work. In this case, *r is the same as
- // *r++, and the conversion operator below is used to ensure
- // readability.
- writable_postfix_increment_proxy const&
- operator*() const
- {
- return *this;
- }
-
- // Provides readability of *r++
- operator value_type&() const
- {
- return stored_value;
- }
-
- // Provides writability of *r++
- template <class T>
- T const& operator=(T const& x) const
- {
- *this->stored_iterator = x;
- return x;
- }
-
- // This overload just in case only non-const objects are writable
- template <class T>
- T& operator=(T& x) const
- {
- *this->stored_iterator = x;
- return x;
- }
-
- // Provides X(r++)
- operator Iterator const&() const
- {
- return stored_iterator;
- }
-
- private:
- mutable value_type stored_value;
- Iterator stored_iterator;
- };
-
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <class Reference, class Value>
- struct is_non_proxy_reference_impl
- {
- static Reference r;
-
- template <class R>
- static typename mpl::if_<
- is_convertible<
- R const volatile*
- , Value const volatile*
- >
- , char[1]
- , char[2]
- >::type& helper(R const&);
-
- BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1);
- };
-
- template <class Reference, class Value>
- struct is_non_proxy_reference
- : mpl::bool_<
- is_non_proxy_reference_impl<Reference, Value>::value
- >
- {};
-# else
- template <class Reference, class Value>
- struct is_non_proxy_reference
- : is_convertible<
- typename remove_reference<Reference>::type
- const volatile*
- , Value const volatile*
- >
- {};
-# endif
-
- // A metafunction to choose the result type of postfix ++
- //
- // Because the C++98 input iterator requirements say that *r++ has
- // type T (value_type), implementations of some standard
- // algorithms like lexicographical_compare may use constructions
- // like:
- //
- // *r++ < *s++
- //
- // If *r++ returns a proxy (as required if r is writable but not
- // multipass), this sort of expression will fail unless the proxy
- // supports the operator<. Since there are any number of such
- // operations, we're not going to try to support them. Therefore,
- // even if r++ returns a proxy, *r++ will only return a proxy if
- // *r also returns a proxy.
- template <class Iterator, class Value, class Reference, class CategoryOrTraversal>
- struct postfix_increment_result
- : mpl::eval_if<
- mpl::and_<
- // A proxy is only needed for readable iterators
- is_convertible<Reference,Value const&>
-
- // No multipass iterator can have values that disappear
- // before positions can be re-visited
- , mpl::not_<
- is_convertible<
- typename iterator_category_to_traversal<CategoryOrTraversal>::type
- , forward_traversal_tag
- >
- >
- >
- , mpl::if_<
- is_non_proxy_reference<Reference,Value>
- , postfix_increment_proxy<Iterator>
- , writable_postfix_increment_proxy<Iterator>
- >
- , mpl::identity<Iterator>
- >
- {};
-
- // operator->() needs special support for input iterators to strictly meet the
- // standard's requirements. If *i is not a reference type, we must still
- // produce a (constant) lvalue to which a pointer can be formed. We do that by
- // returning an instantiation of this special proxy class template.
- template <class T>
- struct operator_arrow_proxy
- {
- operator_arrow_proxy(T const* px) : m_value(*px) {}
- const T* operator->() const { return &m_value; }
- // This function is needed for MWCW and BCC, which won't call operator->
- // again automatically per 13.3.1.2 para 8
- operator const T*() const { return &m_value; }
- T m_value;
- };
-
- // A metafunction that gets the result type for operator->. Also
- // has a static function make() which builds the result from a
- // Reference
- template <class ValueType, class Reference, class Pointer>
- struct operator_arrow_result
- {
- // CWPro8.3 won't accept "operator_arrow_result::type", and we
- // need that type below, so metafunction forwarding would be a
- // losing proposition here.
- typedef typename mpl::if_<
- is_reference<Reference>
- , Pointer
- , operator_arrow_proxy<ValueType>
- >::type type;
-
- static type make(Reference x)
- {
- return implicit_cast<type>(&x);
- }
- };
-
-# if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- // Deal with ETI
- template<>
- struct operator_arrow_result<int, int, int>
- {
- typedef int type;
- };
-# endif
-
- // A proxy return type for operator[], needed to deal with
- // iterators that may invalidate referents upon destruction.
- // Consider the temporary iterator in *(a + n)
- template <class Iterator>
- class operator_brackets_proxy
- {
- // Iterator is actually an iterator_facade, so we do not have to
- // go through iterator_traits to access the traits.
- typedef typename Iterator::reference reference;
- typedef typename Iterator::value_type value_type;
-
- public:
- operator_brackets_proxy(Iterator const& iter)
- : m_iter(iter)
- {}
-
- operator reference() const
- {
- return *m_iter;
- }
-
- operator_brackets_proxy& operator=(value_type const& val)
- {
- *m_iter = val;
- return *this;
- }
-
- private:
- Iterator m_iter;
- };
-
- // A metafunction that determines whether operator[] must return a
- // proxy, or whether it can simply return a copy of the value_type.
- template <class ValueType, class Reference>
- struct use_operator_brackets_proxy
- : mpl::not_<
- mpl::and_<
- // Really we want an is_copy_constructible trait here,
- // but is_POD will have to suffice in the meantime.
- boost::is_POD<ValueType>
- , iterator_writability_disabled<ValueType,Reference>
- >
- >
- {};
-
- template <class Iterator, class Value, class Reference>
- struct operator_brackets_result
- {
- typedef typename mpl::if_<
- use_operator_brackets_proxy<Value,Reference>
- , operator_brackets_proxy<Iterator>
- , Value
- >::type type;
- };
-
- template <class Iterator>
- operator_brackets_proxy<Iterator> make_operator_brackets_result(Iterator const& iter, mpl::true_)
- {
- return operator_brackets_proxy<Iterator>(iter);
- }
-
- template <class Iterator>
- typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_)
- {
- return *iter;
- }
-
- struct choose_difference_type
- {
- template <class I1, class I2>
- struct apply
- :
-# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
- iterator_difference<I1>
-# elif BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- mpl::if_<
- is_convertible<I2,I1>
- , typename I1::difference_type
- , typename I2::difference_type
- >
-# else
- mpl::eval_if<
- is_convertible<I2,I1>
- , iterator_difference<I1>
- , iterator_difference<I2>
- >
-# endif
- {};
-
- };
- } // namespace detail
-
-
- // Macros which describe the declarations of binary operators
-# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \
- template < \
- class Derived1, class V1, class TC1, class R1, class D1 \
- , class Derived2, class V2, class TC2, class R2, class D2 \
- > \
- prefix typename mpl::apply2<result_type,Derived1,Derived2>::type \
- operator op( \
- iterator_facade<Derived1, V1, TC1, R1, D1> const& lhs \
- , iterator_facade<Derived2, V2, TC2, R2, D2> const& rhs)
-# else
-# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \
- template < \
- class Derived1, class V1, class TC1, class R1, class D1 \
- , class Derived2, class V2, class TC2, class R2, class D2 \
- > \
- prefix typename detail::enable_if_interoperable< \
- Derived1, Derived2 \
- , typename mpl::apply2<result_type,Derived1,Derived2>::type \
- >::type \
- operator op( \
- iterator_facade<Derived1, V1, TC1, R1, D1> const& lhs \
- , iterator_facade<Derived2, V2, TC2, R2, D2> const& rhs)
-# endif
-
-# define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args) \
- template <class Derived, class V, class TC, class R, class D> \
- prefix Derived operator+ args
-
- //
- // Helper class for granting access to the iterator core interface.
- //
- // The simple core interface is used by iterator_facade. The core
- // interface of a user/library defined iterator type should not be made public
- // so that it does not clutter the public interface. Instead iterator_core_access
- // should be made friend so that iterator_facade can access the core
- // interface through iterator_core_access.
- //
- class iterator_core_access
- {
-# if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
- // Tasteless as this may seem, making all members public allows member templates
- // to work in the absence of member template friends.
- public:
-# else
-
- template <class I, class V, class TC, class R, class D> friend class iterator_facade;
-
-# define BOOST_ITERATOR_FACADE_RELATION(op) \
- BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, detail::always_bool2);
-
- BOOST_ITERATOR_FACADE_RELATION(==)
- BOOST_ITERATOR_FACADE_RELATION(!=)
-
- BOOST_ITERATOR_FACADE_RELATION(<)
- BOOST_ITERATOR_FACADE_RELATION(>)
- BOOST_ITERATOR_FACADE_RELATION(<=)
- BOOST_ITERATOR_FACADE_RELATION(>=)
-# undef BOOST_ITERATOR_FACADE_RELATION
-
- BOOST_ITERATOR_FACADE_INTEROP_HEAD(
- friend, -, detail::choose_difference_type)
- ;
-
- BOOST_ITERATOR_FACADE_PLUS_HEAD(
- friend
- , (iterator_facade<Derived, V, TC, R, D> const&
- , typename Derived::difference_type)
- )
- ;
-
- BOOST_ITERATOR_FACADE_PLUS_HEAD(
- friend
- , (typename Derived::difference_type
- , iterator_facade<Derived, V, TC, R, D> const&)
- )
- ;
-
-# endif
-
- template <class Facade>
- static typename Facade::reference dereference(Facade const& f)
- {
- return f.dereference();
- }
-
- template <class Facade>
- static void increment(Facade& f)
- {
- f.increment();
- }
-
- template <class Facade>
- static void decrement(Facade& f)
- {
- f.decrement();
- }
-
- template <class Facade1, class Facade2>
- static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_)
- {
- return f1.equal(f2);
- }
-
- template <class Facade1, class Facade2>
- static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_)
- {
- return f2.equal(f1);
- }
-
- template <class Facade>
- static void advance(Facade& f, typename Facade::difference_type n)
- {
- f.advance(n);
- }
-
- template <class Facade1, class Facade2>
- static typename Facade1::difference_type distance_from(
- Facade1 const& f1, Facade2 const& f2, mpl::true_)
- {
- return -f1.distance_to(f2);
- }
-
- template <class Facade1, class Facade2>
- static typename Facade2::difference_type distance_from(
- Facade1 const& f1, Facade2 const& f2, mpl::false_)
- {
- return f2.distance_to(f1);
- }
-
- //
- // Curiously Recurring Template interface.
- //
- template <class I, class V, class TC, class R, class D>
- static I& derived(iterator_facade<I,V,TC,R,D>& facade)
- {
- return *static_cast<I*>(&facade);
- }
-
- template <class I, class V, class TC, class R, class D>
- static I const& derived(iterator_facade<I,V,TC,R,D> const& facade)
- {
- return *static_cast<I const*>(&facade);
- }
-
- private:
- // objects of this class are useless
- iterator_core_access(); //undefined
- };
-
- //
- // iterator_facade - use as a public base class for defining new
- // standard-conforming iterators.
- //
- template <
- class Derived // The derived iterator type being constructed
- , class Value
- , class CategoryOrTraversal
- , class Reference = Value&
- , class Difference = std::ptrdiff_t
- >
- class iterator_facade
-# ifdef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
- : public detail::iterator_facade_types<
- Value, CategoryOrTraversal, Reference, Difference
- >::base
-# undef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
-# endif
- {
- private:
- //
- // Curiously Recurring Template interface.
- //
- Derived& derived()
- {
- return *static_cast<Derived*>(this);
- }
-
- Derived const& derived() const
- {
- return *static_cast<Derived const*>(this);
- }
-
- typedef detail::iterator_facade_types<
- Value, CategoryOrTraversal, Reference, Difference
- > associated_types;
-
- protected:
- // For use by derived classes
- typedef iterator_facade<Derived,Value,Reference,Difference> iterator_facade_;
-
- public:
-
- typedef typename associated_types::value_type value_type;
- typedef Reference reference;
- typedef Difference difference_type;
- typedef typename associated_types::pointer pointer;
- typedef typename associated_types::iterator_category iterator_category;
-
- reference operator*() const
- {
- return iterator_core_access::dereference(this->derived());
- }
-
- typename detail::operator_arrow_result<
- value_type
- , reference
- , pointer
- >::type
- operator->() const
- {
- return detail::operator_arrow_result<
- value_type
- , reference
- , pointer
- >::make(*this->derived());
- }
-
- typename detail::operator_brackets_result<Derived,Value,reference>::type
- operator[](difference_type n) const
- {
- typedef detail::use_operator_brackets_proxy<Value,Reference> use_proxy;
-
- return detail::make_operator_brackets_result<Derived>(
- this->derived() + n
- , use_proxy()
- );
- }
-
- Derived& operator++()
- {
- iterator_core_access::increment(this->derived());
- return this->derived();
- }
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- typename detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
- operator++(int)
- {
- typename detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
- tmp(this->derived());
- ++*this;
- return tmp;
- }
-# endif
-
- Derived& operator--()
- {
- iterator_core_access::decrement(this->derived());
- return this->derived();
- }
-
- Derived operator--(int)
- {
- Derived tmp(this->derived());
- --*this;
- return tmp;
- }
-
- Derived& operator+=(difference_type n)
- {
- iterator_core_access::advance(this->derived(), n);
- return this->derived();
- }
-
- Derived& operator-=(difference_type n)
- {
- iterator_core_access::advance(this->derived(), -n);
- return this->derived();
- }
-
- Derived operator-(difference_type x) const
- {
- Derived result(this->derived());
- return result -= x;
- }
-
-# if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- // There appears to be a bug which trashes the data of classes
- // derived from iterator_facade when they are assigned unless we
- // define this assignment operator. This bug is only revealed
- // (so far) in STLPort debug mode, but it's clearly a codegen
- // problem so we apply the workaround for all MSVC6.
- iterator_facade& operator=(iterator_facade const&)
- {
- return *this;
- }
-# endif
- };
-
-# if !BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- template <class I, class V, class TC, class R, class D>
- typename detail::postfix_increment_result<I,V,R,TC>::type
- operator++(
- iterator_facade<I,V,TC,R,D>& i
- , int
- )
- {
- typename detail::postfix_increment_result<I,V,R,TC>::type
- tmp(*static_cast<I*>(&i));
-
- ++i;
-
- return tmp;
- }
-# endif
-
-
- //
- // Comparison operator implementation. The library supplied operators
- // enables the user to provide fully interoperable constant/mutable
- // iterator types. I.e. the library provides all operators
- // for all mutable/constant iterator combinations.
- //
- // Note though that this kind of interoperability for constant/mutable
- // iterators is not required by the standard for container iterators.
- // All the standard asks for is a conversion mutable -> constant.
- // Most standard library implementations nowadays provide fully interoperable
- // iterator implementations, but there are still heavily used implementations
- // that do not provide them. (Actually it's even worse, they do not provide
- // them for only a few iterators.)
- //
- // ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should
- // enable the user to turn off mixed type operators
- //
- // The library takes care to provide only the right operator overloads.
- // I.e.
- //
- // bool operator==(Iterator, Iterator);
- // bool operator==(ConstIterator, Iterator);
- // bool operator==(Iterator, ConstIterator);
- // bool operator==(ConstIterator, ConstIterator);
- //
- // ...
- //
- // In order to do so it uses c++ idioms that are not yet widely supported
- // by current compiler releases. The library is designed to degrade gracefully
- // in the face of compiler deficiencies. In general compiler
- // deficiencies result in less strict error checking and more obscure
- // error messages, functionality is not affected.
- //
- // For full operation compiler support for "Substitution Failure Is Not An Error"
- // (aka. enable_if) and boost::is_convertible is required.
- //
- // The following problems occur if support is lacking.
- //
- // Pseudo code
- //
- // ---------------
- // AdaptorA<Iterator1> a1;
- // AdaptorA<Iterator2> a2;
- //
- // // This will result in a no such overload error in full operation
- // // If enable_if or is_convertible is not supported
- // // The instantiation will fail with an error hopefully indicating that
- // // there is no operator== for Iterator1, Iterator2
- // // The same will happen if no enable_if is used to remove
- // // false overloads from the templated conversion constructor
- // // of AdaptorA.
- //
- // a1 == a2;
- // ----------------
- //
- // AdaptorA<Iterator> a;
- // AdaptorB<Iterator> b;
- //
- // // This will result in a no such overload error in full operation
- // // If enable_if is not supported the static assert used
- // // in the operator implementation will fail.
- // // This will accidently work if is_convertible is not supported.
- //
- // a == b;
- // ----------------
- //
-
-# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-# define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_()
-# else
-# define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible<a,b>()
-# endif
-
-# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \
- BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type) \
- { \
- /* For those compilers that do not support enable_if */ \
- BOOST_STATIC_ASSERT(( \
- is_interoperable< Derived1, Derived2 >::value \
- )); \
- return_prefix iterator_core_access::base_op( \
- *static_cast<Derived1 const*>(&lhs) \
- , *static_cast<Derived2 const*>(&rhs) \
- , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \
- ); \
- }
-
-# define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \
- BOOST_ITERATOR_FACADE_INTEROP( \
- op \
- , detail::always_bool2 \
- , return_prefix \
- , base_op \
- )
-
- BOOST_ITERATOR_FACADE_RELATION(==, return, equal)
- BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
-
- BOOST_ITERATOR_FACADE_RELATION(<, return 0 >, distance_from)
- BOOST_ITERATOR_FACADE_RELATION(>, return 0 <, distance_from)
- BOOST_ITERATOR_FACADE_RELATION(<=, return 0 >=, distance_from)
- BOOST_ITERATOR_FACADE_RELATION(>=, return 0 <=, distance_from)
-# undef BOOST_ITERATOR_FACADE_RELATION
-
- // operator- requires an additional part in the static assertion
- BOOST_ITERATOR_FACADE_INTEROP(
- -
- , detail::choose_difference_type
- , return
- , distance_from
- )
-# undef BOOST_ITERATOR_FACADE_INTEROP
-# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD
-
-# define BOOST_ITERATOR_FACADE_PLUS(args) \
- BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args) \
- { \
- Derived tmp(static_cast<Derived const&>(i)); \
- return tmp += n; \
- }
-
-BOOST_ITERATOR_FACADE_PLUS((
- iterator_facade<Derived, V, TC, R, D> const& i
- , typename Derived::difference_type n
-))
-
-BOOST_ITERATOR_FACADE_PLUS((
- typename Derived::difference_type n
- , iterator_facade<Derived, V, TC, R, D> const& i
-))
-# undef BOOST_ITERATOR_FACADE_PLUS
-# undef BOOST_ITERATOR_FACADE_PLUS_HEAD
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP
+++ /dev/null
-// 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 ITERATOR_TRAITS_DWA200347_HPP
-# define ITERATOR_TRAITS_DWA200347_HPP
-
-# include <boost/detail/iterator.hpp>
-# include <boost/detail/workaround.hpp>
-
-namespace boost {
-
-// Unfortunately, g++ 2.95.x chokes when we define a class template
-// iterator_category which has the same name as its
-// std::iterator_category() function, probably due in part to the
-// "std:: is visible globally" hack it uses. Use
-// BOOST_ITERATOR_CATEGORY to write code that's portable to older
-// GCCs.
-
-# if BOOST_WORKAROUND(__GNUC__, <= 2)
-# define BOOST_ITERATOR_CATEGORY iterator_category_
-# else
-# define BOOST_ITERATOR_CATEGORY iterator_category
-# endif
-
-
-template <class Iterator>
-struct iterator_value
-{
- typedef typename detail::iterator_traits<Iterator>::value_type type;
-};
-
-template <class Iterator>
-struct iterator_reference
-{
- typedef typename detail::iterator_traits<Iterator>::reference type;
-};
-
-
-template <class Iterator>
-struct iterator_pointer
-{
- typedef typename detail::iterator_traits<Iterator>::pointer type;
-};
-
-template <class Iterator>
-struct iterator_difference
-{
- typedef typename detail::iterator_traits<Iterator>::difference_type type;
-};
-
-template <class Iterator>
-struct BOOST_ITERATOR_CATEGORY
-{
- typedef typename detail::iterator_traits<Iterator>::iterator_category type;
-};
-
-# if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-template <>
-struct iterator_value<int>
-{
- typedef void type;
-};
-
-template <>
-struct iterator_reference<int>
-{
- typedef void type;
-};
-
-template <>
-struct iterator_pointer<int>
-{
- typedef void type;
-};
-
-template <>
-struct iterator_difference<int>
-{
- typedef void type;
-};
-
-template <>
-struct BOOST_ITERATOR_CATEGORY<int>
-{
- typedef void type;
-};
-# endif
-
-} // namespace boost::iterator
-
-#endif // ITERATOR_TRAITS_DWA200347_HPP
+++ /dev/null
-#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 <assert.h>
-# 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>
-
-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++);
- assert(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;
- assert(v1 == v);
- assert(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;
- assert(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;
- assert(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;
- assert(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;
- assert(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;
- assert(i2 == i3);
- assert(i != j);
- assert(i2 != j);
- readable_iterator_test(i, val1);
- readable_iterator_test(i2, val1);
- readable_iterator_test(i3, val1);
-
- assert(i == i2++);
- assert(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;
-
- assert(i == i1--);
- assert(i != --i2);
-
- readable_iterator_test(i, v2);
- readable_iterator_test(i1, v1);
- readable_iterator_test(i2, v1);
-
- --i;
- assert(i == i1);
- assert(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)
- {
- assert(i == j + c);
- assert(*i == vals[c]);
- typename detail::iterator_traits<Iterator>::value_type x = j[c];
- assert(*i == x);
- assert(*i == *(j + c));
- assert(*i == *(c + j));
- ++i;
- assert(i > j);
- assert(i >= j);
- assert(j <= i);
- assert(j < i);
- }
-
- Iterator k = j + N - 1;
- for (c = 0; c < N-1; ++c)
- {
- assert(i == k - c);
- assert(*i == vals[N - 1 - c]);
- typename detail::iterator_traits<Iterator>::value_type x = j[N - 1 - c];
- assert(*i == x);
- Iterator q = k - c;
- assert(*i == *q);
- assert(i > j);
- assert(i >= j);
- assert(j <= i);
- assert(j < i);
- --i;
- }
-}
-
-} // namespace boost
-
-# include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_NEW_ITERATOR_TESTS_HPP
+++ /dev/null
-// (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()); }
-
- 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
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_REVERSE_ITERATOR_23022003THW_HPP
-#define BOOST_REVERSE_ITERATOR_23022003THW_HPP
-
-#include <boost/iterator.hpp>
-#include <boost/utility.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-
-namespace boost
-{
-
- //
- //
- //
- template <class Iterator>
- class reverse_iterator
- : public iterator_adaptor< reverse_iterator<Iterator>, Iterator >
- {
- typedef iterator_adaptor< reverse_iterator<Iterator>, Iterator > super_t;
-
- friend class iterator_core_access;
-
- public:
- reverse_iterator() {}
-
- explicit reverse_iterator(Iterator x)
- : super_t(x) {}
-
- template<class OtherIterator>
- reverse_iterator(
- reverse_iterator<OtherIterator> const& r
- , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
- )
- : super_t(r.base())
- {}
-
- private:
- typename super_t::reference dereference() const { return *boost::prior(this->base()); }
-
- void increment() { --this->base_reference(); }
- void decrement() { ++this->base_reference(); }
-
- void advance(typename super_t::difference_type n)
- {
- this->base_reference() += -n;
- }
-
- template <class OtherIterator>
- typename super_t::difference_type
- distance_to(reverse_iterator<OtherIterator> const& y) const
- {
- return this->base_reference() - y.base();
- }
- };
-
- template <class BidirectionalIterator>
- reverse_iterator<BidirectionalIterator> make_reverse_iterator(BidirectionalIterator x)
- {
- return reverse_iterator<BidirectionalIterator>(x);
- }
-
-} // namespace boost
-
-#endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek 2002.
-// (C) Copyright Thomas Witt 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_TRANSFORM_ITERATOR_23022003THW_HPP
-#define BOOST_TRANSFORM_ITERATOR_23022003THW_HPP
-
-#include <boost/function.hpp>
-#include <boost/iterator.hpp>
-#include <boost/iterator/detail/enable_if.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/iterator/iterator_categories.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/type_traits/function_traits.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-# include <boost/type_traits/is_base_and_derived.hpp>
-
-#endif
-#include <boost/iterator/detail/config_def.hpp>
-
-
-namespace boost
-{
- template <class UnaryFunction, class Iterator, class Reference = use_default, class Value = use_default>
- class transform_iterator;
-
- namespace detail
- {
-
- template <class UnaryFunction>
- struct function_object_result
- {
- typedef typename UnaryFunction::result_type type;
- };
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Return, class Argument>
- struct function_object_result<Return(*)(Argument)>
- {
- typedef Return type;
- };
-#endif
-
- // Compute the iterator_adaptor instantiation to be used for transform_iterator
- template <class UnaryFunction, class Iterator, class Reference, class Value>
- struct transform_iterator_base
- {
- private:
- // By default, dereferencing the iterator yields the same as
- // the function. Do we need to adjust the way
- // function_object_result is computed for the standard
- // proposal (e.g. using Doug's result_of)?
- typedef typename ia_dflt_help<
- Reference
- , function_object_result<UnaryFunction>
- >::type reference;
-
- // To get the default for Value: remove any reference on the
- // result type, but retain any constness to signal
- // non-writability. Note that if we adopt Thomas' suggestion
- // to key non-writability *only* on the Reference argument,
- // we'd need to strip constness here as well.
- typedef typename ia_dflt_help<
- Value
- , remove_reference<reference>
- >::type cv_value_type;
-
- public:
- typedef iterator_adaptor<
- transform_iterator<UnaryFunction, Iterator, Reference, Value>
- , Iterator
- , cv_value_type
- , use_default // Leave the traversal category alone
- , reference
- > type;
- };
- }
-
- template <class UnaryFunction, class Iterator, class Reference, class Value>
- class transform_iterator
- : public detail::transform_iterator_base<UnaryFunction, Iterator, Reference, Value>::type
- {
- typedef typename
- detail::transform_iterator_base<UnaryFunction, Iterator, Reference, Value>::type
- super_t;
-
- friend class iterator_core_access;
-
- public:
- transform_iterator() { }
-
- transform_iterator(Iterator const& x, UnaryFunction f)
- : super_t(x), m_f(f) { }
-
- explicit transform_iterator(Iterator const& x)
- : super_t(x)
- {
- // Pro8 is a little too aggressive about instantiating the
- // body of this function.
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- // don't provide this constructor if UnaryFunction is a
- // function pointer type, since it will be 0. Too dangerous.
- BOOST_STATIC_ASSERT(is_class<UnaryFunction>::value);
-#endif
- }
-
- template<
- class OtherUnaryFunction
- , class OtherIterator
- , class OtherReference
- , class OtherValue>
- transform_iterator(
- transform_iterator<OtherUnaryFunction, OtherIterator, OtherReference, OtherValue> const& t
- , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
- , typename enable_if_convertible<OtherUnaryFunction, UnaryFunction>::type* = 0
-#endif
- )
- : super_t(t.base()), m_f(t.functor())
- {}
-
- UnaryFunction functor() const
- { return m_f; }
-
- private:
- typename super_t::reference dereference() const
- { return m_f(*this->base()); }
-
- // Probably should be the initial base class so it can be
- // optimized away via EBO if it is an empty class.
- UnaryFunction m_f;
- };
-
- template <class UnaryFunction, class Iterator>
- transform_iterator<UnaryFunction, Iterator>
- make_transform_iterator(Iterator it, UnaryFunction fun)
- {
- return transform_iterator<UnaryFunction, Iterator>(it, fun);
- }
-
- // Version which allows explicit specification of the UnaryFunction
- // type.
- //
- // This generator is not provided if UnaryFunction is a function
- // pointer type, because it's too dangerous: the default-constructed
- // function pointer in the iterator be 0, leading to a runtime
- // crash.
- template <class UnaryFunction, class Iterator>
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- typename mpl::if_<
-#else
- typename iterators::enable_if<
-#endif
- is_class<UnaryFunction> // We should probably find a cheaper test than is_class<>
- , transform_iterator<UnaryFunction, Iterator>
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- , int[3]
-#endif
- >::type
- make_transform_iterator(Iterator it)
- {
- return transform_iterator<UnaryFunction, Iterator>(it, UnaryFunction());
- }
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
- template <class Return, class Argument, class Iterator>
- transform_iterator< Return (*)(Argument), Iterator, Return>
- make_transform_iterator(Iterator it, Return (*fun)(Argument))
- {
- return transform_iterator<Return (*)(Argument), Iterator, Return>(it, fun);
- }
-#endif
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_TRANSFORM_ITERATOR_23022003THW_HPP
+++ /dev/null
-// (C) Copyright David Abrahams and Thomas Becker 2000. Permission to
-// copy, use, modify, sell and distribute this software is granted
-// provided this copyright notice appears in all copies. This software
-// is provided "as is" without express or implied warranty, and with
-// no claim as to its suitability for any purpose.
-//
-// Compilers Tested:
-// =================
-// Metrowerks Codewarrior Pro 7.2, 8.3
-// gcc 2.95.3
-// gcc 3.2
-// Microsoft VC 6sp5 (test fails due to some compiler bug)
-// Microsoft VC 7 (works)
-// Microsoft VC 7.1
-// Intel 5
-// Intel 6
-// Intel 7.1
-// Intel 8
-// Borland 5.5.1 (broken due to lack of support from Boost.Tuples)
-
-#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, == 1200)
- mpl::or_<
-#endif
- boost::is_same<Tuple, tuples::null_type>
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- , 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.
- //
- 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, == 1200) // 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
+++ /dev/null
-// Copyright David Abrahams 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)
-#ifndef ITERATOR_ADAPTORS_DWA2004725_HPP
-# define ITERATOR_ADAPTORS_DWA2004725_HPP
-
-#define BOOST_ITERATOR_ADAPTORS_VERSION 0x0200
-#include <boost/iterator/iterator_adaptor.hpp>
-
-#endif // ITERATOR_ADAPTORS_DWA2004725_HPP
+++ /dev/null
-// last_value function object (documented as part of Boost.Signals)
-
-// Copyright Douglas Gregor 2001-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)
-
-// For more information, see http://www.boost.org/libs/signals
-
-#ifndef BOOST_LAST_VALUE_HPP
-#define BOOST_LAST_VALUE_HPP
-
-#include <cassert>
-
-namespace boost {
- template<typename T>
- struct last_value {
- typedef T result_type;
-
- template<typename InputIterator>
- T operator()(InputIterator first, InputIterator last) const
- {
- assert(first != last);
- T value = *first++;
- while (first != last)
- value = *first++;
- return value;
- }
- };
-
- template<>
- struct last_value<void> {
- struct unusable {};
-
- public:
- typedef unusable result_type;
-
- template<typename InputIterator>
- result_type
- operator()(InputIterator first, InputIterator last) const
- {
- while (first != last)
- *first++;
- return result_type();
- }
- };
-}
-#endif // BOOST_SIGNALS_LAST_VALUE_HPP
+++ /dev/null
-#ifndef BOOST_LEXICAL_CAST_INCLUDED
-#define BOOST_LEXICAL_CAST_INCLUDED
-
-// Boost lexical_cast.hpp header -------------------------------------------//
-//
-// See http://www.boost.org for most recent version including documentation.
-// See end of this header for rights and permissions.
-//
-// what: lexical_cast custom keyword cast
-// who: contributed by Kevlin Henney,
-// enhanced with contributions from Terje Slettebø,
-// with additional fixes and suggestions from Gennaro Prota,
-// Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov,
-// and other Boosters
-// when: November 2000, March 2003, June 2005
-
-#include <cstddef>
-#include <string>
-#include <typeinfo>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-
-#ifdef BOOST_NO_STRINGSTREAM
-#include <strstream>
-#else
-#include <sstream>
-#endif
-
-#if defined(BOOST_NO_STRINGSTREAM) || \
- defined(BOOST_NO_STD_WSTRING) || \
- defined(BOOST_NO_STD_LOCALE)
-#define DISABLE_WIDE_CHAR_SUPPORT
-#endif
-
-namespace boost
-{
- // exception used to indicate runtime lexical_cast failure
- class bad_lexical_cast : public std::bad_cast
- {
- public:
- bad_lexical_cast() :
- source(&typeid(void)), target(&typeid(void))
- {
- }
- bad_lexical_cast(
- const std::type_info &source_type,
- const std::type_info &target_type) :
- source(&source_type), target(&target_type)
- {
- }
- const std::type_info &source_type() const
- {
- return *source;
- }
- const std::type_info &target_type() const
- {
- return *target;
- }
- virtual const char *what() const throw()
- {
- return "bad lexical cast: "
- "source type value could not be interpreted as target";
- }
- virtual ~bad_lexical_cast() throw()
- {
- }
- private:
- const std::type_info *source;
- const std::type_info *target;
- };
-
- namespace detail // selectors for choosing stream character type
- {
- template<typename Type>
- struct stream_char
- {
- typedef char type;
- };
-
- #ifndef DISABLE_WIDE_CHAR_SUPPORT
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
- template<>
- struct stream_char<wchar_t>
- {
- typedef wchar_t type;
- };
-#endif
-
- template<>
- struct stream_char<wchar_t *>
- {
- typedef wchar_t type;
- };
-
- template<>
- struct stream_char<const wchar_t *>
- {
- typedef wchar_t type;
- };
-
- template<>
- struct stream_char<std::wstring>
- {
- typedef wchar_t type;
- };
- #endif
-
- template<typename TargetChar, typename SourceChar>
- struct widest_char
- {
- typedef TargetChar type;
- };
-
- template<>
- struct widest_char<char, wchar_t>
- {
- typedef wchar_t type;
- };
- }
-
- namespace detail // stream wrapper for handling lexical conversions
- {
- template<typename Target, typename Source>
- class lexical_stream
- {
- private:
- typedef typename widest_char<
- typename stream_char<Target>::type,
- typename stream_char<Source>::type>::type char_type;
-
- public:
- lexical_stream()
- {
- stream.unsetf(std::ios::skipws);
-
- if(std::numeric_limits<Target>::is_specialized)
- stream.precision(std::numeric_limits<Target>::digits10 + 1);
- else if(std::numeric_limits<Source>::is_specialized)
- stream.precision(std::numeric_limits<Source>::digits10 + 1);
- }
- ~lexical_stream()
- {
- #if defined(BOOST_NO_STRINGSTREAM)
- stream.freeze(false);
- #endif
- }
- bool operator<<(const Source &input)
- {
- return !(stream << input).fail();
- }
- template<typename InputStreamable>
- bool operator>>(InputStreamable &output)
- {
- return !is_pointer<InputStreamable>::value &&
- stream >> output &&
- stream.get() ==
-#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING)
-// GCC 2.9x lacks std::char_traits<>::eof().
-// We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
-// configurations, which do provide std::char_traits<>::eof().
-
- EOF;
-#else
- std::char_traits<char_type>::eof();
-#endif
- }
- bool operator>>(std::string &output)
- {
- #if defined(BOOST_NO_STRINGSTREAM)
- stream << '\0';
- #endif
- output = stream.str();
- return true;
- }
- #ifndef DISABLE_WIDE_CHAR_SUPPORT
- bool operator>>(std::wstring &output)
- {
- output = stream.str();
- return true;
- }
- #endif
- private:
- #if defined(BOOST_NO_STRINGSTREAM)
- std::strstream stream;
- #elif defined(BOOST_NO_STD_LOCALE)
- std::stringstream stream;
- #else
- std::basic_stringstream<char_type> stream;
- #endif
- };
- }
-
- #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // call-by-const reference version
-
- namespace detail
- {
- template<class T>
- struct array_to_pointer_decay
- {
- typedef T type;
- };
-
- template<class T, std::size_t N>
- struct array_to_pointer_decay<T[N]>
- {
- typedef const T * type;
- };
- }
-
- template<typename Target, typename Source>
- Target lexical_cast(const Source &arg)
- {
- typedef typename detail::array_to_pointer_decay<Source>::type NewSource;
-
- detail::lexical_stream<Target, NewSource> interpreter;
- Target result;
-
- if(!(interpreter << arg && interpreter >> result))
- throw_exception(bad_lexical_cast(typeid(NewSource), typeid(Target)));
- return result;
- }
-
- #else
-
- // call-by-value fallback version (deprecated)
-
- template<typename Target, typename Source>
- Target lexical_cast(Source arg)
- {
- detail::lexical_stream<Target, Source> interpreter;
- Target result;
-
- if(!(interpreter << arg && interpreter >> result))
- throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)));
- return result;
- }
-
- #endif
-}
-
-// Copyright Kevlin Henney, 2000-2005. All rights reserved.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#undef DISABLE_WIDE_CHAR_SUPPORT
-#endif
+++ /dev/null
-
-// (C) Copyright John maddock 1999.
-// (C) David Abrahams 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)
-//
-// use this header as a workaround for missing <limits>
-
-// See http://www.boost.org/libs/utility/limits.html for documentation.
-
-#ifndef BOOST_LIMITS
-#define BOOST_LIMITS
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_NO_LIMITS
-# include <boost/detail/limits.hpp>
-#else
-# include <limits>
-#endif
-
-#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \
- || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS))
-// Add missing specializations for numeric_limits:
-#ifdef BOOST_HAS_MS_INT64
-# define BOOST_LLT __int64
-# define BOOST_ULLT unsigned __int64
-#else
-# define BOOST_LLT ::boost::long_long_type
-# define BOOST_ULLT ::boost::ulong_long_type
-#endif
-
-namespace std
-{
- template<>
- class numeric_limits<BOOST_LLT>
- {
- public:
-
- BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-#ifdef BOOST_HAS_MS_INT64
- static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; }
- static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; }
-#elif defined(LLONG_MAX)
- static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; }
- static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; }
-#elif defined(LONGLONG_MAX)
- static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; }
- static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; }
-#else
- static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); }
- static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); }
-#endif
- BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1);
- BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000);
- BOOST_STATIC_CONSTANT(bool, is_signed = true);
- BOOST_STATIC_CONSTANT(bool, is_integer = true);
- BOOST_STATIC_CONSTANT(bool, is_exact = true);
- BOOST_STATIC_CONSTANT(int, radix = 2);
- static BOOST_LLT epsilon() throw() { return 0; };
- static BOOST_LLT round_error() throw() { return 0; };
-
- BOOST_STATIC_CONSTANT(int, min_exponent = 0);
- BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
- BOOST_STATIC_CONSTANT(int, max_exponent = 0);
- BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
-
- BOOST_STATIC_CONSTANT(bool, has_infinity = false);
- BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
- BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
- BOOST_STATIC_CONSTANT(bool, has_denorm = false);
- BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
- static BOOST_LLT infinity() throw() { return 0; };
- static BOOST_LLT quiet_NaN() throw() { return 0; };
- static BOOST_LLT signaling_NaN() throw() { return 0; };
- static BOOST_LLT denorm_min() throw() { return 0; };
-
- BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
- BOOST_STATIC_CONSTANT(bool, is_bounded = false);
- BOOST_STATIC_CONSTANT(bool, is_modulo = false);
-
- BOOST_STATIC_CONSTANT(bool, traps = false);
- BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
- BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
-
- };
-
- template<>
- class numeric_limits<BOOST_ULLT>
- {
- public:
-
- BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-#ifdef BOOST_HAS_MS_INT64
- static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; }
- static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; }
-#elif defined(ULLONG_MAX) && defined(ULLONG_MIN)
- static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; }
- static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; }
-#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN)
- static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; }
- static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; }
-#else
- static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; }
- static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; }
-#endif
- BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT);
- BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000);
- BOOST_STATIC_CONSTANT(bool, is_signed = false);
- BOOST_STATIC_CONSTANT(bool, is_integer = true);
- BOOST_STATIC_CONSTANT(bool, is_exact = true);
- BOOST_STATIC_CONSTANT(int, radix = 2);
- static BOOST_ULLT epsilon() throw() { return 0; };
- static BOOST_ULLT round_error() throw() { return 0; };
-
- BOOST_STATIC_CONSTANT(int, min_exponent = 0);
- BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
- BOOST_STATIC_CONSTANT(int, max_exponent = 0);
- BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
-
- BOOST_STATIC_CONSTANT(bool, has_infinity = false);
- BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
- BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
- BOOST_STATIC_CONSTANT(bool, has_denorm = false);
- BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
- static BOOST_ULLT infinity() throw() { return 0; };
- static BOOST_ULLT quiet_NaN() throw() { return 0; };
- static BOOST_ULLT signaling_NaN() throw() { return 0; };
- static BOOST_ULLT denorm_min() throw() { return 0; };
-
- BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
- BOOST_STATIC_CONSTANT(bool, is_bounded = false);
- BOOST_STATIC_CONSTANT(bool, is_modulo = false);
-
- BOOST_STATIC_CONSTANT(bool, traps = false);
- BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
- BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
-
- };
-}
-#endif
-
-#endif
+++ /dev/null
-// Boost math_fwd.hpp header file ------------------------------------------//
-
-// (C) Copyright Hubert Holin and Daryle Walker 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)
-
-// See http://www.boost.org/libs/math for documentation.
-
-#ifndef BOOST_MATH_FWD_HPP
-#define BOOST_MATH_FWD_HPP
-
-
-namespace boost
-{
-namespace math
-{
-
-
-// From <boost/math/quaternion.hpp> ----------------------------------------//
-
-template < typename T >
- class quaternion;
-
-template < >
- class quaternion< float >;
-template < >
- class quaternion< double >;
-template < >
- class quaternion< long double >;
-
-// Also has many function templates (including operators)
-
-
-// From <boost/math/octonion.hpp> ------------------------------------------//
-
-template < typename T >
- class octonion;
-
-template < >
- class octonion< float >;
-template < >
- class octonion< double >;
-template < >
- class octonion< long double >;
-
-// Also has many function templates (including operators)
-
-
-// From <boost/math/special_functions/acosh.hpp> ---------------------------//
-
-// Only has function template
-
-
-// From <boost/math/special_functions/asinh.hpp> ---------------------------//
-
-// Only has function template
-
-
-// From <boost/math/special_functions/atanh.hpp> ---------------------------//
-
-// Only has function template
-
-
-// From <boost/math/special_functions/sinc.hpp> ----------------------------//
-
-// Only has function templates
-
-
-// From <boost/math/special_functions/sinhc.hpp> ---------------------------//
-
-// Only has function templates
-
-
-// From <boost/math/common_factor.hpp> -------------------------------------//
-
-// Only #includes other headers
-
-
-// From <boost/math/common_factor_ct.hpp> ----------------------------------//
-
-template < unsigned long Value1, unsigned long Value2 >
- struct static_gcd;
-template < unsigned long Value1, unsigned long Value2 >
- struct static_lcm;
-
-
-// From <boost/math/common_factor_rt.hpp> ----------------------------------//
-
-template < typename IntegerType >
- class gcd_evaluator;
-template < typename IntegerType >
- class lcm_evaluator;
-
-// Also has a couple of function templates
-
-
-} // namespace math
-} // namespace boost
-
-
-#endif // BOOST_MATH_FWD_HPP
+++ /dev/null
-#ifndef BOOST_MEM_FN_HPP_INCLUDED
-#define BOOST_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 & call(U & u, T *) 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 & u) const
- {
- return call(u, &u);
- }
-
-#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200)
-
- R & operator()(T & t) const
- {
- return (t.*f_);
- }
-
-#endif
-
- R const & operator()(T const & t) const
- {
- return (t.*f_);
- }
-
- 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_MEM_FN_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/O1_size.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/O1_size_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-// returns sequence size if it's an O(1) operation; otherwise returns -1
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct O1_size
- : O1_size_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, O1_size, (Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, O1_size)
-
-}}
-
-#endif // BOOST_MPL_O1_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/O1_size_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct O1_size_impl;
-template< typename Sequence > struct O1_size;
-
-}}
-
-#endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ACCUMULATE_HPP_INCLUDED
-#define BOOST_MPL_ACCUMULATE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/accumulate.hpp,v $
-// $Date: 2005/01/19 15:20:21 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(State)
- , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
- >
-struct accumulate
- : fold<Sequence,State,ForwardOp>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,accumulate,(Sequence,State,ForwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, accumulate)
-
-}}
-
-#endif // BOOST_MPL_ACCUMULATE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED
-#define BOOST_MPL_ADVANCE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/advance.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.9 $
-
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/negate.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/tag.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/advance_forward.hpp>
-#include <boost/mpl/aux_/advance_backward.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation for forward/bidirectional iterators
-template< typename Tag >
-struct advance_impl
-{
- template< typename Iterator, typename N > struct apply
- {
- typedef typename less< N,long_<0> >::type backward_;
- typedef typename if_< backward_, negate<N>, N >::type offset_;
-
- typedef typename if_<
- backward_
- , aux::advance_backward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value >
- , aux::advance_forward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value >
- >::type f_;
-
- typedef typename apply_wrap1<f_,Iterator>::type type;
- };
-};
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Iterator)
- , typename BOOST_MPL_AUX_NA_PARAM(N)
- >
-struct advance
- : advance_impl< typename tag<Iterator>::type >
- ::template apply<Iterator,N>
-{
-};
-
-template<
- typename Iterator
- , BOOST_MPL_AUX_NTTP_DECL(long, N)
- >
-struct advance_c
- : advance_impl< typename tag<Iterator>::type >
- ::template apply<Iterator,long_<N> >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, advance)
-
-}}
-
-#endif // BOOST_MPL_ADVANCE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-#define BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/advance_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(advance)
-
-template< typename Tag > struct advance_impl;
-template< typename Iterator, typename N > struct advance;
-
-}}
-
-#endif // BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ALIAS_HPP_INCLUDED
-#define BOOST_MPL_ALIAS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/alias.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace {
-namespace mpl = boost::mpl;
-}
-
-#endif // BOOST_MPL_ALIAS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED
-#define BOOST_MPL_ALWAYS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/always.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/arity_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Value > struct always
-{
- template<
- typename T
- BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na)
- >
- struct apply
- {
- typedef Value type;
- };
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(1, always)
-
-}}
-
-#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AND_HPP_INCLUDED
-#define BOOST_MPL_AND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/and.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/nested_type_wknd.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-
-// agurt, 19/may/04: workaround a conflict with <iso646.h> header's
-// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)'
-// has to be checked in a separate condition, otherwise GCC complains
-// about 'and' being an alternative token
-#if defined(_MSC_VER)
-#if defined(and)
-# pragma push_macro("and")
-# undef and
-# define and(x)
-#endif
-#endif
-
-# define BOOST_MPL_PREPROCESSED_HEADER and.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#if defined(_MSC_VER)
-#if defined(and)
-# pragma pop_macro("and")
-#endif
-#endif
-
-#else
-
-# define AUX778076_OP_NAME and_
-# define AUX778076_OP_VALUE1 false
-# define AUX778076_OP_VALUE2 true
-# include <boost/mpl/aux_/logical_op.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AND_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_APPLY_HPP_INCLUDED
-#define BOOST_MPL_APPLY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/apply.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.17 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/apply_fwd.hpp>
-# include <boost/mpl/apply_wrap.hpp>
-# include <boost/mpl/placeholders.hpp>
-# include <boost/mpl/lambda.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER apply.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/config/lambda.hpp>
-# include <boost/mpl/aux_/config/dtp.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-# define AUX778076_APPLY_PARAMS(param) \
- BOOST_MPL_PP_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- ) \
- /**/
-
-# define AUX778076_APPLY_DEF_PARAMS(param, value) \
- BOOST_MPL_PP_DEFAULT_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- , value \
- ) \
- /**/
-
-# define AUX778076_APPLY_N_PARAMS(n, param) \
- BOOST_MPL_PP_PARAMS(n, param) \
- /**/
-
-# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
- BOOST_PP_COMMA_IF(n) \
- BOOST_MPL_PP_PARAMS(n, param) \
- /**/
-
-# define AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(n, param, def) \
- BOOST_PP_COMMA_IF(n) \
- BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
- /**/
-
-# define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \
- BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \
- /**/
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply.hpp>))
-#include BOOST_PP_ITERATE()
-
-# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-// real C++ version is already taken care of
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace aux {
-// apply_count_args
-#define AUX778076_COUNT_ARGS_PREFIX apply
-#define AUX778076_COUNT_ARGS_DEFAULT na
-#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#include <boost/mpl/aux_/count_args.hpp>
-}
-
-
-template<
- typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
- >
-struct apply
- : aux::apply_chooser<
- aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value
- >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type
-{
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-# undef AUX778076_APPLY_N_SPEC_PARAMS
-# undef AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS
-# undef AUX778076_APPLY_N_COMMA_PARAMS
-# undef AUX778076_APPLY_N_PARAMS
-# undef AUX778076_APPLY_DEF_PARAMS
-# undef AUX778076_APPLY_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-
-# define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(apply,i_)
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- : BOOST_PP_CAT(apply_wrap,i_)<
- typename lambda<F>::type
- AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
- >
-{
-#else
-{
- typedef typename BOOST_PP_CAT(apply_wrap,i_)<
- typename lambda<F>::type
- AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
- >::type type;
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- BOOST_PP_INC(i_)
- , BOOST_PP_CAT(apply,i_)
- , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T))
- )
-};
-
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-/// workaround for ETI bug
-template<>
-struct BOOST_PP_CAT(apply,i_)<AUX778076_APPLY_N_SPEC_PARAMS(i_, int)>
-{
- typedef int type;
-};
-#endif
-
-# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-/// primary template (not a specialization!)
-template<
- typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
- >
-struct apply
- : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
-{
-};
-#else
-template<
- typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
- >
-struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) >
- : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
-{
-};
-#endif
-
-# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-namespace aux {
-
-template<>
-struct apply_chooser<i_>
-{
- template<
- typename F, AUX778076_APPLY_PARAMS(typename T)
- >
- struct result_
- {
- typedef BOOST_PP_CAT(apply,i_)<
- F AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
- > type;
- };
-};
-
-} // namespace aux
-#endif
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-# undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-#define BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/apply_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/aux_/na.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC
-// (for known reasons)
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-#endif
-
-namespace boost { namespace mpl {
-
-// local macro, #undef-ined at the end of the header
-# define AUX778076_APPLY_DEF_PARAMS(param, value) \
- BOOST_MPL_PP_DEFAULT_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- , value \
- ) \
- /**/
-
-# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
- BOOST_PP_COMMA_IF(n) \
- BOOST_MPL_PP_PARAMS(n, param) \
- /**/
-
-# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// forward declaration
-template<
- typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
- >
-struct apply;
-#else
-namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-#endif
-
-# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply_fwd.hpp>))
-#include BOOST_PP_ITERATE()
-
-
-# undef AUX778076_APPLY_N_COMMA_PARAMS
-# undef AUX778076_APPLY_DEF_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(apply,i_);
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/apply_wrap.hpp,v $
-// $Date: 2004/09/03 15:56:55 $
-// $Revision: 1.3 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/aux_/arity.hpp>
-# include <boost/mpl/aux_/has_apply.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/msvc_never_true.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/preprocessor/add.hpp>
-# include <boost/mpl/aux_/config/dtp.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/logical/and.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-# define AUX778076_APPLY_WRAP_PARAMS(n, param) \
- BOOST_MPL_PP_PARAMS(n, param) \
- /**/
-
-# define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \
- BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \
- /**/
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply_wrap.hpp>))
-#include BOOST_PP_ITERATE()
-
-
-# undef AUX778076_APPLY_WRAP_SPEC_PARAMS
-# undef AUX778076_APPLY_WRAP_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-
-# define i_ BOOST_PP_FRAME_ITERATION(1)
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-// MSVC version
-
-#define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_)
-#define AUX778076_MSVC_DTW_ORIGINAL_NAME apply
-#define AUX778076_MSVC_DTW_ARITY i_
-#include <boost/mpl/aux_/msvc_dtw.hpp>
-
-template<
- typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(apply_wrap,i_)
-{
- // Metafunction forwarding confuses vc6
- typedef typename BOOST_PP_CAT(msvc_apply,i_)<F>::template result_<
- AUX778076_APPLY_WRAP_PARAMS(i_, T)
- >::type type;
-};
-
-# elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-// MWCW/Borland version
-
-template<
- int N, typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(apply_wrap_impl,i_);
-
-#define BOOST_PP_ITERATION_PARAMS_2 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, <boost/mpl/apply_wrap.hpp>))
-#include BOOST_PP_ITERATE()
-
-template<
- typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(apply_wrap,i_)
- : BOOST_PP_CAT(apply_wrap_impl,i_)<
- ::boost::mpl::aux::arity<F,i_>::value
- , F
- BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
- >::type
-{
-};
-
-# else
-// ISO98 C++, with minor concession to vc7
-
-template<
- typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-#if i_ == 0
- , typename has_apply_ = typename aux::has_apply<F>::type
-#endif
- >
-struct BOOST_PP_CAT(apply_wrap,i_)
-// metafunction forwarding confuses MSVC 7.0
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) >
-{
-#else
-{
- typedef typename F::template apply<
- AUX778076_APPLY_WRAP_PARAMS(i_, T)
- >::type type;
-#endif
-};
-
-#if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename F >
-struct BOOST_PP_CAT(apply_wrap,i_)<F,true_>
- : F::apply
-{
-};
-#endif
-
-# endif // workarounds
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-/// workaround for ETI bug
-template<>
-struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
-{
- typedef int type;
-};
-#endif
-
-# undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH == 2
-
-# define j_ BOOST_PP_FRAME_ITERATION(2)
-
-template<
- typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(apply_wrap_impl,i_)<
- BOOST_MPL_PP_ADD(i_, j_)
- , F
- BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
- >
-{
- typedef typename F::template apply<
- AUX778076_APPLY_WRAP_PARAMS(i_, T)
-#if i_ == 0 && j_ == 0
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
- na
-#else
- BOOST_PP_COMMA_IF(BOOST_PP_AND(i_, j_)) BOOST_MPL_PP_ENUM(j_, na)
-#endif
- > type;
-};
-
-# undef j_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_ARG_HPP_INCLUDED
-#define BOOST_MPL_ARG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/arg.hpp,v $
-// $Date: 2004/09/21 13:48:07 $
-// $Revision: 1.12 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/arg_fwd.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/na_assert.hpp>
-# include <boost/mpl/aux_/arity_spec.hpp>
-# include <boost/mpl/aux_/arg_typedef.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER arg.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/config/lambda.hpp>
-# include <boost/mpl/aux_/config/dtp.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// local macro, #undef-ined at the end of the header
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
- BOOST_MPL_PP_DEFAULT_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- , value \
- ) \
- /**/
-#else
-# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
- BOOST_MPL_PP_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- ) \
- /**/
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/arg.hpp>))
-#include BOOST_PP_ITERATE()
-
-
-# undef AUX778076_ARG_N_DEFAULT_PARAMS
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_ARG_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if i_ > 0
-
-template<> struct arg<i_>
-{
- BOOST_STATIC_CONSTANT(int, value = i_);
- typedef arg<BOOST_PP_INC(i_)> next;
- BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
- BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
- template<
- AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
- >
- struct apply
- {
- typedef BOOST_PP_CAT(U,i_) type;
- BOOST_MPL_AUX_ASSERT_NOT_NA(type);
- };
-};
-
-#else
-
-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<
- AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
- >
- struct apply
- {
- typedef U1 type;
- BOOST_MPL_AUX_ASSERT_NOT_NA(type);
- };
-};
-
-#endif // i_ > 0
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED
-#define BOOST_MPL_ARG_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/arg_fwd.hpp,v $
-// $Date: 2004/09/28 13:56:58 $
-// $Revision: 1.6 $
-
-#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(int, N) > struct arg;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(arg)
-
-#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ARITHMETIC_HPP_INCLUDED
-#define BOOST_MPL_ARITHMETIC_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/arithmetic.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/times.hpp>
-#include <boost/mpl/divides.hpp>
-#include <boost/mpl/modulus.hpp>
-#include <boost/mpl/negate.hpp>
-#include <boost/mpl/multiplies.hpp> // deprecated
-
-#endif // BOOST_MPL_ARITHMETIC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AS_SEQUENCE_HPP_INCLUDED
-#define BOOST_MPL_AS_SEQUENCE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/as_sequence.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/single_view.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct as_sequence
- : if_< is_sequence<T>, T, single_view<T> >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,as_sequence,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, as_sequence)
-
-}}
-
-#endif // BOOST_MPL_AS_SEQUENCE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_ASSERT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/assert.hpp,v $
-// $Date: 2004/09/28 13:56:58 $
-// $Revision: 1.13 $
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/nested_type_wknd.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-#include <boost/mpl/aux_/config/nttp.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- || (BOOST_MPL_CFG_GCC != 0)
-# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-#endif
-
-#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
- || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
- || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-#endif
-
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-struct failed {};
-
-// agurt, 24/aug/04: MSVC 7.1 workaround here and below: return/accept
-// 'assert<false>' by reference; can't apply it unconditionally -- apparently it
-// degrades quality of GCC diagnostics
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-# define AUX778076_ASSERT_ARG(x) x&
-#else
-# define AUX778076_ASSERT_ARG(x) x
-#endif
-
-template< bool C > struct assert { typedef void* type; };
-template<> struct assert<false> { typedef AUX778076_ASSERT_ARG(assert) type; };
-
-template< bool C >
-int assertion_failed( typename assert<C>::type );
-
-template< bool C >
-struct assertion
-{
- static int failed( assert<false> );
-};
-
-template<>
-struct assertion<true>
-{
- static int failed( void* );
-};
-
-struct assert_
-{
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
- template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {};
-#endif
- static assert_ const arg;
- enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal };
-};
-
-
-#if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-
-bool operator==( failed, failed );
-bool operator!=( failed, failed );
-bool operator>( failed, failed );
-bool operator>=( failed, failed );
-bool operator<( failed, failed );
-bool operator<=( failed, failed );
-
-#if defined(__EDG_VERSION__)
-template< bool (*)(failed, failed), long x, long y > struct assert_relation {};
-# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<r,x,y>
-#else
-template< BOOST_MPL_AUX_NTTP_DECL(long, x), BOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) >
-struct assert_relation {};
-# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<x,y,r>
-#endif
-
-#else // BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-
-boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ );
-boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ );
-boost::mpl::aux::weighted_tag<3>::type operator>( assert_, assert_ );
-boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ );
-boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ );
-boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ );
-
-template< assert_::relations r, long x, long y > struct assert_relation {};
-
-#endif
-
-
-#if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-
-template< bool > struct assert_arg_pred_impl { typedef int type; };
-template<> struct assert_arg_pred_impl<true> { typedef void* type; };
-
-template< typename P > struct assert_arg_pred
-{
- typedef typename P::type p_type;
- typedef typename assert_arg_pred_impl< p_type::value >::type type;
-};
-
-template< typename P > struct assert_arg_pred_not
-{
- typedef typename P::type p_type;
- enum { p = !p_type::value };
- typedef typename assert_arg_pred_impl<p>::type type;
-};
-
-template< typename Pred >
-failed ************ (Pred::************
- assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
- );
-
-template< typename Pred >
-failed ************ (boost::mpl::not_<Pred>::************
- assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
- );
-
-template< typename Pred >
-AUX778076_ASSERT_ARG(assert<false>)
-assert_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type );
-
-template< typename Pred >
-AUX778076_ASSERT_ARG(assert<false>)
-assert_not_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type );
-
-
-#else // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-
-template< bool c, typename Pred > struct assert_arg_type_impl
-{
- typedef failed ************ Pred::* mwcw83_wknd;
- typedef mwcw83_wknd ************* type;
-};
-
-template< typename Pred > struct assert_arg_type_impl<true,Pred>
-{
- typedef AUX778076_ASSERT_ARG(assert<false>) type;
-};
-
-template< typename Pred > struct assert_arg_type
- : assert_arg_type_impl< BOOST_MPL_AUX_VALUE_WKND(BOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred >
-{
-};
-
-template< typename Pred >
-typename assert_arg_type<Pred>::type
-assert_arg(void (*)(Pred), int);
-
-template< typename Pred >
-typename assert_arg_type< boost::mpl::not_<Pred> >::type
-assert_not_arg(void (*)(Pred), int);
-
-# if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-template< long x, long y, bool (*r)(failed, failed) >
-typename assert_arg_type_impl< false,BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type
-assert_rel_arg( BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) );
-# else
-template< assert_::relations r, long x, long y >
-typename assert_arg_type_impl< false,assert_relation<r,x,y> >::type
-assert_rel_arg( assert_relation<r,x,y> );
-# endif
-
-#endif // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-
-#undef AUX778076_ASSERT_ARG
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-
-// BOOST_MPL_ASSERT((pred<x,...>))
-
-#define BOOST_MPL_ASSERT(pred) \
-enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<false>( \
- boost::mpl::assert_arg( (void (*) pred)0, 1 ) \
- ) \
- ) \
-}\
-/**/
-
-// BOOST_MPL_ASSERT_NOT((pred<x,...>))
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-# define BOOST_MPL_ASSERT_NOT(pred) \
-enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion<false>::failed( \
- boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
- ) \
- ) \
-}\
-/**/
-#else
-# define BOOST_MPL_ASSERT_NOT(pred) \
-enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<false>( \
- boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
- ) \
- ) \
-}\
-/**/
-#endif
-
-// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y)
-
-#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-
-# if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<(x rel y)>( \
- (boost::mpl::failed ************ ( boost::mpl::assert_relation< \
- boost::mpl::assert_::relations( sizeof( \
- boost::mpl::assert_::arg rel boost::mpl::assert_::arg \
- ) ) \
- , x \
- , y \
- >::************)) 0 ) \
- ) \
-} \
-/**/
-# else
-# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-enum { \
- BOOST_PP_CAT(mpl_assert_rel,__LINE__) = sizeof(boost::mpl::assert_::arg rel boost::mpl::assert_::arg) \
- , BOOST_PP_CAT(mpl_assert_rel_value,__LINE__) = (x rel y) \
- , BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<BOOST_PP_CAT(mpl_assert_rel_value,__LINE__)>( \
- boost::mpl::assert_rel_arg( boost::mpl::assert_relation< \
- boost::mpl::assert_::relations(BOOST_PP_CAT(mpl_assert_rel,__LINE__)) \
- , x \
- , y \
- >() ) \
- ) \
- ) \
-} \
-/**/
-# endif
-
-#else // !BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-
-# if defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<(x rel y)>( boost::mpl::assert_rel_arg( \
- boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))() \
- ) ) \
- ) \
-}\
-/**/
-# else
-# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<(x rel y)>( (boost::mpl::failed ************ ( \
- boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))::************))0 ) \
- ) \
-}\
-/**/
-# endif
-
-#endif
-
-
-// BOOST_MPL_ASSERT_MSG( (pred<x,...>::value), USER_PROVIDED_MESSAGE, (types<x,...>) )
-
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202))
-# define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \
- struct msg; \
- typedef struct BOOST_PP_CAT(msg,__LINE__) : boost::mpl::assert_ \
- { \
- using boost::mpl::assert_::types; \
- static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \
- { return 0; } \
- } BOOST_PP_CAT(mpl_assert_arg,__LINE__); \
- enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,__LINE__)::assert_arg() ) \
- ) \
- }\
-/**/
-#else
-# define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \
- struct msg; \
- typedef struct BOOST_PP_CAT(msg,__LINE__) : boost::mpl::assert_ \
- { \
- static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \
- { return 0; } \
- } BOOST_PP_CAT(mpl_assert_arg,__LINE__); \
- enum { \
- BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \
- boost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,__LINE__)::assert_arg() ) \
- ) \
- }\
-/**/
-#endif
-
-#endif // BOOST_MPL_ASSERT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AT_HPP_INCLUDED
-#define BOOST_MPL_AT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/at.hpp,v $
-// $Date: 2004/09/04 01:33:46 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/at_fwd.hpp>
-#include <boost/mpl/aux_/at_impl.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(N)
- >
-struct at
- : at_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,N >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N))
-};
-
-template<
- typename Sequence
- , BOOST_MPL_AUX_NTTP_DECL(long, N)
- >
-struct at_c
- : at_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,mpl::long_<N> >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, at)
-
-}}
-
-#endif // BOOST_MPL_AT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED
-#define BOOST_MPL_AT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/at_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct at_impl;
-template< typename Sequence, typename N > struct at;
-
-}}
-
-#endif // BOOST_MPL_AT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/O1_size_impl.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/has_size.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation - returns 'Sequence::size' if sequence has a 'size'
-// member, and -1 otherwise; conrete sequences might override it by
-// specializing either the 'O1_size_impl' or the primary 'O1_size' template
-
-# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
- && !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
-
-namespace aux {
-template< typename Sequence > struct O1_size_impl
- : Sequence::size
-{
-};
-}
-
-template< typename Tag >
-struct O1_size_impl
-{
- template< typename Sequence > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : if_<
- aux::has_size<Sequence>
- , aux::O1_size_impl<Sequence>
- , long_<-1>
- >::type
- {
-#else
- {
- typedef typename if_<
- aux::has_size<Sequence>
- , aux::O1_size_impl<Sequence>
- , long_<-1>
- >::type type;
-
- BOOST_STATIC_CONSTANT(long, value =
- (if_<
- aux::has_size<Sequence>
- , aux::O1_size_impl<Sequence>
- , long_<-1>
- >::type::value)
- );
-#endif
- };
-};
-
-# else // BOOST_MSVC
-
-template< typename Tag >
-struct O1_size_impl
-{
- template< typename Sequence > struct apply
- : long_<-1>
- {
- };
-};
-
-# endif
-
-}}
-
-#endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-#define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/adl_barrier.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/adl.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
-
-# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_
-# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ {
-# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }
-# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \
- namespace boost { namespace mpl { \
- using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
- } } \
-/**/
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} }
-namespace boost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE;
-namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; }
-}}
-#endif
-
-#else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
-
-# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE boost::mpl
-# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace boost { namespace mpl {
-# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }}
-# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-#define BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/advance_backward.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.9 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/prior.hpp>
-# include <boost/mpl/apply_wrap.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/unrolling.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/inc.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// forward declaration
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward;
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/advance_backward.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct advance_backward
-{
- template< typename Iterator > struct apply
- {
- typedef typename apply_wrap1<
- advance_backward<BOOST_MPL_LIMIT_UNROLLING>
- , Iterator
- >::type chunk_result_;
-
- typedef typename apply_wrap1<
- advance_backward<(
- (N - BOOST_MPL_LIMIT_UNROLLING) < 0
- ? 0
- : N - BOOST_MPL_LIMIT_UNROLLING
- )>
- , chunk_result_
- >::type type;
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<>
-struct advance_backward< BOOST_PP_FRAME_ITERATION(1) >
-{
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
-
-#if i_ > 0
-# define BOOST_PP_ITERATION_PARAMS_2 \
- (3,(1, BOOST_PP_FRAME_ITERATION(1), <boost/mpl/aux_/advance_backward.hpp>))
-# include BOOST_PP_ITERATE()
-#endif
-
- typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type;
- };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int type;
- };
-#endif
-};
-
-#undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH == 2
-
-# define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2)))
-# define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2))
-
- typedef typename prior<AUX778076_ITER_0>::type AUX778076_ITER_1;
-
-# undef AUX778076_ITER_1
-# undef AUX778076_ITER_0
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-#define BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/advance_forward.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.9 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/next.hpp>
-# include <boost/mpl/apply_wrap.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/unrolling.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/inc.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// forward declaration
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward;
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/advance_forward.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct advance_forward
-{
- template< typename Iterator > struct apply
- {
- typedef typename apply_wrap1<
- advance_forward<BOOST_MPL_LIMIT_UNROLLING>
- , Iterator
- >::type chunk_result_;
-
- typedef typename apply_wrap1<
- advance_forward<(
- (N - BOOST_MPL_LIMIT_UNROLLING) < 0
- ? 0
- : N - BOOST_MPL_LIMIT_UNROLLING
- )>
- , chunk_result_
- >::type type;
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<>
-struct advance_forward< BOOST_PP_FRAME_ITERATION(1) >
-{
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
-
-#if i_ > 0
-# define BOOST_PP_ITERATION_PARAMS_2 \
- (3,(1, i_, <boost/mpl/aux_/advance_forward.hpp>))
-# include BOOST_PP_ITERATE()
-#endif
- typedef BOOST_PP_CAT(iter,i_) type;
- };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int type;
- };
-#endif
-};
-
-#undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH == 2
-
-# define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2)))
-# define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2))
-
- typedef typename next<AUX778076_ITER_0>::type AUX778076_ITER_1;
-
-# undef AUX778076_ITER_1
-# undef AUX778076_ITER_0
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED
-#define BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/apply_1st.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/apply.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-struct apply_1st
-{
- template< typename Pair, typename T > struct apply
- : apply2<
- typename Pair::first
- , typename Pair::second
- , T
- >
- {
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arg_typedef.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
- || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
-# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name;
-
-#else
-
-# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arithmetic_op.hpp,v $
-// $Date: 2004/09/07 08:51:32 $
-// $Revision: 1.4 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/integral_c.hpp>
-# include <boost/mpl/aux_/largest_int.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-# define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#include <boost/mpl/aux_/numeric_op.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/workaround.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, T n1, T n2 >
-struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2));
- typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
- template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
- : integral_c<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
- AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value
- )
- >
-#else
- : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-#endif
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arity.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/dtp.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// agurt, 15/mar/02: it's possible to implement the template so that it will
-// "just work" and do not require any specialization, but not on the compilers
-// that require the arity workaround in the first place
-template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct arity
-{
- BOOST_STATIC_CONSTANT(int, value = N);
-};
-
-}}}
-
-#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arity_spec.hpp,v $
-// $Date: 2004/11/28 02:04:02 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/arity.hpp>
-#include <boost/mpl/aux_/template_arity_fwd.hpp>
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \
-namespace aux { \
-template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \
-struct arity< \
- name< BOOST_MPL_PP_PARAMS(i,T) > \
- , N \
- > \
-{ \
- BOOST_STATIC_CONSTANT(int \
- , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- ); \
-}; \
-} \
-/**/
-#else
-# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/
-#endif
-
-# define BOOST_MPL_AUX_ARITY_SPEC(i,name) \
- BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \
-/**/
-
-
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
- && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \
-namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-struct template_arity< name<BOOST_MPL_PP_PARAMS(i,T)> > \
- : int_<i> \
-{ \
-}; \
-} \
-/**/
-#else
-# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
-#endif
-
-
-#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/at_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/advance.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'at_impl' or the primary 'at' template
-
-template< typename Tag >
-struct at_impl
-{
- template< typename Sequence, typename N > struct apply
- {
- typedef typename advance<
- typename begin<Sequence>::type
- , N
- >::type iter_;
-
- typedef typename deref<iter_>::type type;
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/back_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation, requires at least bi-directional iterators;
-// conrete sequences might override it by specializing either the
-// 'back_impl' or the primary 'back' template
-
-template< typename Tag >
-struct back_impl
-{
- template< typename Sequence > struct apply
- {
- typedef typename end<Sequence>::type end_;
- typedef typename prior<end_>::type last_;
- typedef typename deref<last_>::type type;
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, back_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_BASIC_BIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_BASIC_BIND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/basic_bind.hpp,v $
-// $Date: 2004/09/05 09:42:55 $
-// $Revision: 1.1 $
-
-#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-#include <boost/mpl/bind.hpp>
-
-#endif // BOOST_MPL_AUX_BASIC_BIND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/begin_end_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'begin_impl/end_impl' or the primary
-// 'begin/end' templates
-
-template< typename Tag >
-struct begin_impl
-{
- template< typename Sequence > struct apply
- {
- typedef typename Sequence::begin type;
- };
-};
-
-template< typename Tag >
-struct end_impl
-{
- template< typename Sequence > struct apply
- {
- typedef typename Sequence::end type;
- };
-};
-
-// specialize 'begin_trait/end_trait' for two pre-defined tags
-
-# define AUX778076_IMPL_SPEC(name, tag, result) \
-template<> \
-struct name##_impl<tag> \
-{ \
- template< typename Sequence > struct apply \
- { \
- typedef result type; \
- }; \
-}; \
-/**/
-
-// a sequence with nested 'begin/end' typedefs; just query them
-AUX778076_IMPL_SPEC(begin, nested_begin_end_tag, typename Sequence::begin)
-AUX778076_IMPL_SPEC(end, nested_begin_end_tag, typename Sequence::end)
-
-// if a type 'T' does not contain 'begin/end' or 'tag' members
-// and doesn't specialize either 'begin/end' or 'begin_impl/end_impl'
-// templates, then we end up here
-AUX778076_IMPL_SPEC(begin, non_sequence_tag, void_)
-AUX778076_IMPL_SPEC(end, non_sequence_tag, void_)
-AUX778076_IMPL_SPEC(begin, na, void_)
-AUX778076_IMPL_SPEC(end, na, void_)
-
-# undef AUX778076_IMPL_SPEC
-
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,begin_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,end_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/clear_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag >
-struct clear_impl
-{
- template< typename Sequence > struct apply;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/common_name_wknd.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x561)
-// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class
-// and function named 'xxx'" diagnostic
-# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-namespace name_##wknd { \
-template< typename > void name(); \
-} \
-/**/
-
-#else
-
-# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
-
-#endif // __BORLANDC__
-
-#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/comparison_op.hpp,v $
-// $Date: 2004/09/07 08:51:32 $
-// $Revision: 1.4 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-# define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#define AUX778076_OP_ARITY 2
-
-#include <boost/mpl/aux_/numeric_op.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/integral.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// MSVC workaround: implement less in terms of greater
-#if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0)
-# define AUX778076_OP(N1, N2) \
- ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
-/**/
-#else
-# define AUX778076_OP(N1, N2) \
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \
- AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \
- ) \
-/**/
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
- template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
- : bool_< AUX778076_OP(N1, N2) >
- {
-#else
- {
- BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
- typedef bool_<value> type;
-#endif
- };
-};
-
-#undef AUX778076_OP
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/adl.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/intel.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC,
-// but putting everything expect public, user-specializable metafunctions into
-// a separate global namespace has a nice side effect of reducing the length
-// of template instantiation symbols, so we apply the workaround on all
-// platforms that can handle it
-
-#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
- && ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
- || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
- || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
- || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
- )
-
-# define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/arrays.hpp,v $
-// $Date: 2004/09/03 15:56:55 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- )
-
-# define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
-
-// Copyright David Abrahams 2002
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/bind.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- )
-
-# define BOOST_MPL_CFG_NO_BIND_TEMPLATE
-
-#endif
-
-//#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-#endif // BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/compiler.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.9 $
-
-#if !defined(BOOST_MPL_CFG_COMPILER_DIR)
-
-# include <boost/mpl/aux_/config/dtp.hpp>
-# include <boost/mpl/aux_/config/ttp.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-# include <boost/mpl/aux_/config/gcc.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-# define BOOST_MPL_CFG_COMPILER_DIR msvc60
-
-# elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-# define BOOST_MPL_CFG_COMPILER_DIR msvc70
-
-# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
-# define BOOST_MPL_CFG_COMPILER_DIR gcc
-
-# elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define BOOST_MPL_CFG_COMPILER_DIR bcc551
-# else
-# define BOOST_MPL_CFG_COMPILER_DIR bcc
-# endif
-
-# elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-# define BOOST_MPL_CFG_COMPILER_DIR dmc
-
-# elif defined(__MWERKS__)
-# if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define BOOST_MPL_CFG_COMPILER_DIR mwcw
-# else
-# define BOOST_MPL_CFG_COMPILER_DIR plain
-# endif
-
-# elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# define BOOST_MPL_CFG_COMPILER_DIR no_ctps
-
-# elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-# define BOOST_MPL_CFG_COMPILER_DIR no_ttp
-
-# else
-# define BOOST_MPL_CFG_COMPILER_DIR plain
-# endif
-
-#endif // BOOST_MPL_CFG_COMPILER_DIR
-
-#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/ctps.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/config.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-# define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
-
-#endif
-
-// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in <boost/config.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/dependent_nttp.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// GCC and EDG-based compilers incorrectly reject the following code:
-// template< typename T, T n > struct a;
-// template< typename T > struct b;
-// template< typename T, T n > struct b< a<T,n> > {};
-
-#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_NONTYPE_PARAMETER_IN_PARTIAL_SPEC) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(__EDG_VERSION__, BOOST_TESTED_AT(300)) \
- || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
- )
-
-# define BOOST_MPL_CFG_NO_DEPENDENT_NONTYPE_PARAMETER_IN_PARTIAL_SPEC
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
-# define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/dtp.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// MWCW 7.x-8.0 "losts" default template parameters of nested class
-// templates when their owner classes are passed as arguments to other
-// templates; Borland 5.5.1 "forgets" them from the very beginning (if
-// the owner class is a class template), and Borland 5.6 isn't even
-// able to compile a definition of nested class template with DTP
-
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
- && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif
-
-
-#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
- || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
- )
-
-# define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/eti.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// flags for MSVC 6.5's so-called "early template instantiation bug"
-#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-# define BOOST_MPL_CFG_MSVC_60_ETI_BUG
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-
-# define BOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \
- || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \
- )
-
-# define BOOST_MPL_CFG_MSVC_ETI_BUG
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/forwarding.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-# define BOOST_MPL_CFG_NO_NESTED_FORWARDING
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/gcc.hpp,v $
-// $Date$
-// $Revision$
-
-#if defined(__GNUC__) && !defined(__EDG_VERSION__)
-# define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__)
-#else
-# define BOOST_MPL_CFG_GCC 0
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/has_apply.hpp,v $
-// $Date: 2004/09/13 06:10:10 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/config/has_xxx.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) \
- && ( defined(BOOST_MPL_CFG_NO_HAS_XXX) \
- || BOOST_WORKAROUND(__EDG_VERSION__, < 300) \
- || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
- )
-
-# define BOOST_MPL_CFG_NO_HAS_APPLY
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-// Copyright David Abrahams 2002-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/has_xxx.hpp,v $
-// $Date: 2004/09/03 15:56:56 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) \
- && ( defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
- || BOOST_WORKAROUND(__GNUC__, <= 2) \
- || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
- )
-
-# define BOOST_MPL_CFG_NO_HAS_XXX
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/integral.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
- )
-
-# define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/intel.hpp,v $
-// $Date$
-// $Revision$
-
-
-// BOOST_INTEL_CXX_VERSION is defined here:
-#include <boost/config.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/lambda.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-// agurt, 15/jan/02: full-fledged implementation requires both
-// template template parameters _and_ partial specialization
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
- && ( defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
- || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- )
-
-# define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/msvc.hpp,v $
-// $Date$
-// $Revision$
-
-
-// BOOST_MSVC is defined here:
-#include <boost/config.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/msvc_typename.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-# define BOOST_MSVC_TYPENAME
-#else
-# define BOOST_MSVC_TYPENAME typename
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/nttp.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp"
-// for a workaround):
-//
-// namespace std {
-// template< typename Char > struct string;
-// }
-//
-// void foo(std::string<char>);
-//
-// namespace boost { namespace mpl {
-// template< int > struct arg;
-// }}
-
-#if !defined(BOOST_MPL_CFG_NTTP_BUG) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-# define BOOST_MPL_CFG_NTTP_BUG
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/operators.hpp,v $
-// $Date: 2005/06/14 12:42:08 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \
- && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || BOOST_WORKAROUND(__BORLANDC__, <= 0x600) \
- || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \
- || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
- || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \
- )
-
-# define BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/overload_resolution.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \
- )
-
-# define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/preprocessor.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
- && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
- )
-
-# define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-# define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
-#endif
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \
- && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-# define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
-#endif
-
-
-#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/static_constant.hpp,v $
-// $Date$
-// $Revision$
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-// BOOST_STATIC_CONSTANT is defined here:
-# include <boost/config.hpp>
-#else
-// undef the macro for the preprocessing mode
-# undef BOOST_STATIC_CONSTANT
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/ttp.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
- && defined(BOOST_NO_TEMPLATE_TEMPLATES)
-
-# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
-
-#endif
-
-
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
- || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
- )
-
-# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/typeof.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/config/gcc.hpp>
-
-#if !defined(BOOST_MPL_CFG_HAS_TYPEOF) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && ( defined(BOOST_MPL_CFG_GCC) && BOOST_MPL_CFG_GCC >= 0x0302 \
- || defined(__MWERKS__) && __MWERKS__ >= 0x3000 \
- )
-
-# define BOOST_MPL_CFG_HAS_TYPEOF
-
-#endif
-
-
-#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE) \
- && defined(BOOST_MPL_CFG_HAS_TYPEOF)
-
-# define BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/use_preprocessed.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.7 $
-
-// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/workaround.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/detail/workaround.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/contains_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/contains_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/find.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag >
-struct contains_impl
-{
- template< typename Sequence, typename T > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : not_< is_same<
- typename find<Sequence,T>::type
- , typename end<Sequence>::type
- > >
- {
-#else
- {
- typedef not_< is_same<
- typename find<Sequence,T>::type
- , typename end<Sequence>::type
- > > type;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (not_< is_same<
- typename find<Sequence,T>::type
- , typename end<Sequence>::type
- > >::value)
- );
-#endif
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,contains_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/count_args.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
-
-#include <boost/preprocessor/expr_if.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#if !defined(AUX778076_COUNT_ARGS_PARAM_NAME)
-# define AUX778076_COUNT_ARGS_PARAM_NAME T
-#endif
-
-#if !defined(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
-# define AUX778076_COUNT_ARGS_TEMPLATE_PARAM typename AUX778076_COUNT_ARGS_PARAM_NAME
-#endif
-
-// local macros, #undef-ined at the end of the header
-
-#if !defined(AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES)
-
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-
-# define AUX778076_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT
-# define AUX778076_COUNT_ARGS_PARAMS(param) \
- BOOST_MPL_PP_PARAMS( \
- AUX778076_COUNT_ARGS_ARITY \
- , param \
- ) \
- /**/
-
-#else
-
-# include <boost/preprocessor/enum_shifted_params.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/inc.hpp>
-
-# define AUX778076_COUNT_ARGS_REPEAT BOOST_PP_REPEAT
-# define AUX778076_COUNT_ARGS_PARAMS(param) \
- BOOST_PP_ENUM_SHIFTED_PARAMS( \
- BOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \
- , param \
- ) \
- /**/
-
-#endif // AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-
-
-#define AUX778076_IS_ARG_TEMPLATE_NAME \
- BOOST_PP_CAT(is_,BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \
-/**/
-
-#define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \
- BOOST_PP_EXPR_IF(i, +) \
- AUX778076_IS_ARG_TEMPLATE_NAME<BOOST_PP_CAT(param,BOOST_PP_INC(i))>::value \
-/**/
-
-// is_<xxx>_arg
-template< AUX778076_COUNT_ARGS_TEMPLATE_PARAM >
-struct AUX778076_IS_ARG_TEMPLATE_NAME
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct AUX778076_IS_ARG_TEMPLATE_NAME<AUX778076_COUNT_ARGS_DEFAULT>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// <xxx>_count_args
-template<
- AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
- >
-struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args)
-{
- BOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT(
- AUX778076_COUNT_ARGS_ARITY
- , AUX778076_COUNT_ARGS_FUNC
- , AUX778076_COUNT_ARGS_PARAM_NAME
- ));
-};
-
-#undef AUX778076_COUNT_ARGS_FUNC
-#undef AUX778076_IS_ARG_TEMPLATE_NAME
-#undef AUX778076_COUNT_ARGS_PARAMS
-#undef AUX778076_COUNT_ARGS_REPEAT
-
-#undef AUX778076_COUNT_ARGS_ARITY
-#undef AUX778076_COUNT_ARGS_DEFAULT
-#undef AUX778076_COUNT_ARGS_PREFIX
-#undef AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-#undef AUX778076_COUNT_ARGS_TEMPLATE_PARAM
-#undef AUX778076_COUNT_ARGS_PARAM_NAME
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/count_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/count_fwd.hpp>
-#include <boost/mpl/count_if.hpp>
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct count_impl
-{
- template< typename Sequence, typename T > struct apply
-#if BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x561))
- {
- typedef typename count_if< Sequence,same_as<T> >::type type;
- BOOST_STATIC_CONSTANT(int, value = BOOST_MPL_AUX_VALUE_WKND(type)::value);
-#else
- : count_if< Sequence,same_as<T> >
- {
-#endif
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,count_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/empty_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'empty_impl' or the primary 'empty' template
-
-template< typename Tag >
-struct empty_impl
-{
- template< typename Sequence > struct apply
- : is_same<
- typename begin<Sequence>::type
- , typename end<Sequence>::type
- >
- {
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,empty_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/erase_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/clear.hpp>
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/aux_/na.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'erase_impl' or the primary 'erase' template
-
-template< typename Tag >
-struct erase_impl
-{
- template<
- typename Sequence
- , typename First
- , typename Last
- >
- struct apply
- {
- typedef typename if_na< Last,typename next<First>::type >::type last_;
-
- // 1st half: [begin, first)
- typedef iterator_range<
- typename begin<Sequence>::type
- , First
- > first_half_;
-
- // 2nd half: [last, end) ... that is, [last + 1, end)
- typedef iterator_range<
- last_
- , typename end<Sequence>::type
- > second_half_;
-
- typedef typename reverse_fold<
- second_half_
- , typename clear<Sequence>::type
- , push_front<_,_>
- >::type half_sequence_;
-
- typedef typename reverse_fold<
- first_half_
- , half_sequence_
- , push_front<_,_>
- >::type type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/erase_key_impl.hpp,v $
-// $Date: 2004/09/05 09:42:55 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/erase_key_fwd.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag >
-struct erase_key_impl
-{
- template< typename Sequence, typename Key > struct apply;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, erase_key_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_FILTER_ITER_HPP_INCLUDED
-#define BOOST_MPL_AUX_FILTER_ITER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/filter_iter.hpp,v $
-// $Date: 2004/09/07 12:07:56 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/find_if.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
-struct filter_iter;
-
-template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
-struct next_filter_iter
-{
- typedef typename find_if<
- iterator_range<Iterator,LastIterator>
- , Predicate
- >::type base_iter_;
-
- typedef filter_iter<base_iter_,LastIterator,Predicate> type;
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
-struct filter_iter
-{
- typedef Iterator base;
- typedef forward_iterator_tag category;
- typedef typename aux::next_filter_iter<
- typename mpl::next<base>::type
- , LastIterator
- , Predicate
- >::type next;
-
- typedef typename deref<base>::type type;
-};
-
-template<
- typename LastIterator
- , typename Predicate
- >
-struct filter_iter< LastIterator,LastIterator,Predicate >
-{
- typedef LastIterator base;
- typedef forward_iterator_tag category;
-};
-
-#else
-
-template< bool >
-struct filter_iter_impl
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- typedef typename next_filter_iter<
- typename mpl::next<Iterator>::type
- , LastIterator
- , Predicate
- >::type next;
-
- typedef typename deref<base>::type type;
- };
-};
-
-template<>
-struct filter_iter_impl< true >
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- };
-};
-
-template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
-struct filter_iter
- : filter_iter_impl<
- ::boost::is_same<Iterator,LastIterator>::value
- >::template result_< Iterator,LastIterator,Predicate >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::filter_iter)
-
-}}
-
-#endif // BOOST_MPL_AUX_FILTER_ITER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
-#define BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Eric Friedman 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/libs/mpl for documentation.
-
-#include <boost/mpl/aux_/iter_apply.hpp>
-#include <boost/mpl/not.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Predicate >
-struct find_if_pred
-{
- template< typename Iterator >
- struct apply
- {
- typedef not_< aux::iter_apply1<Predicate,Iterator> > type;
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/fold_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/next_prior.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/deref.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/mpl/if.hpp>
-# include <boost/type_traits/is_same.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
-# define AUX778076_FOLD_IMPL_NAME_PREFIX fold
-# include <boost/mpl/aux_/fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/fold_impl_body.hpp,v $
-// $Date: 2004/10/24 08:18:03 $
-// $Revision: 1.8 $
-
-# include <boost/mpl/limits/unrolling.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/dec.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-// local macros, #undef-ined at the end of the header
-
-# define AUX778076_ITER_FOLD_STEP(unused, i, unused2) \
- typedef typename apply2< \
- ForwardOp \
- , BOOST_PP_CAT(state,i) \
- , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,i)) \
- >::type BOOST_PP_CAT(state,BOOST_PP_INC(i)); \
- typedef typename mpl::next<BOOST_PP_CAT(iter,i)>::type \
- BOOST_PP_CAT(iter,BOOST_PP_INC(i)); \
- /**/
-
-# define AUX778076_FOLD_IMPL_NAME \
- BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
- /**/
-
-# define AUX778076_FOLD_CHUNK_NAME \
- BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
- /**/
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-template<
- BOOST_MPL_AUX_NTTP_DECL(int, N)
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-# if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template<
- BOOST_MPL_AUX_NTTP_DECL(int, N)
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME
-{
- typedef AUX778076_FOLD_IMPL_NAME<
- BOOST_MPL_LIMIT_UNROLLING
- , First
- , Last
- , State
- , ForwardOp
- > chunk_;
-
- typedef AUX778076_FOLD_IMPL_NAME<
- ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
- , typename chunk_::iterator
- , Last
- , typename chunk_::state
- , ForwardOp
- > res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
-};
-
-// fallback implementation for sequences of unknown size
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,ForwardOp>
- : AUX778076_FOLD_IMPL_NAME<
- -1
- , typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
- , ForwardOp
- >
-{
-};
-
-template<
- typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,ForwardOp>
-{
- typedef State state;
- typedef Last iterator;
-};
-
-# else // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-// Borland have some serious problems with the unrolled version, so
-// we always use a basic implementation
-template<
- BOOST_MPL_AUX_NTTP_DECL(int, N)
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME
-{
- typedef AUX778076_FOLD_IMPL_NAME<
- -1
- , typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
- , ForwardOp
- > res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- typedef state type;
-};
-
-template<
- BOOST_MPL_AUX_NTTP_DECL(int, N)
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<N,Last,Last,State,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
- typedef state type;
-};
-
-# endif // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct AUX778076_FOLD_CHUNK_NAME
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef AUX778076_FOLD_IMPL_NAME<
- BOOST_MPL_LIMIT_UNROLLING
- , First
- , Last
- , State
- , ForwardOp
- > chunk_;
-
- typedef AUX778076_FOLD_IMPL_NAME<
- ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
- , typename chunk_::iterator
- , Last
- , typename chunk_::state
- , ForwardOp
- > res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-};
-
-// fallback implementation for sequences of unknown size
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
- typename Last
- , typename State
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same<First,Last>::type
- , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
- , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,ForwardOp>
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
- /// ETI workaround
- template<> struct result_<int,int,int,int>
- {
- typedef int state;
- typedef int iterator;
- };
-#endif
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
-{
- // can't inherit here - it breaks MSVC 7.0
- typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- BOOST_MPL_AUX_NTTP_DECL(int, N)
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME
- : AUX778076_FOLD_CHUNK_NAME<N>
- ::template result_<First,Last,State,ForwardOp>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}}
-
-# undef AUX778076_FOLD_IMPL_NAME
-# undef AUX778076_FOLD_CHUNK_NAME
-# undef AUX778076_ITER_FOLD_STEP
-
-#undef AUX778076_FOLD_IMPL_OP
-#undef AUX778076_FOLD_IMPL_NAME_PREFIX
-
-///// iteration
-
-#else
-
-# define n_ BOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<n_,First,Last,State,ForwardOp>
-{
- typedef First iter0;
- typedef State state0;
-
- BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
- typedef BOOST_PP_CAT(state,n_) state;
- typedef BOOST_PP_CAT(iter,n_) iterator;
-};
-
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
-
- BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
- typedef BOOST_PP_CAT(state,n_) state;
- typedef BOOST_PP_CAT(iter,n_) iterator;
- };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
- /// ETI workaround
- template<> struct result_<int,int,int,int>
- {
- typedef int state;
- typedef int iterator;
- };
-#endif
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-# undef n_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED
-#define BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/fold_op.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/apply.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// hand-written version is more efficient than bind/lambda expression
-template< typename Op >
-struct fold_op
-{
- template< typename T1, typename T2 > struct apply
- {
- typedef typename apply2<
- Op
- , T1
- , typename T2::type
- >::type type;
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED
-#define BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/fold_pred.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/apply.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Last >
-struct fold_pred
-{
- template<
- typename State
- , typename Iterator
- >
- struct apply
- : not_same_as<Last>::template apply<Iterator>
- {
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/front_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'front_impl' or the primary 'front' template
-
-template< typename Tag >
-struct front_impl
-{
- template< typename Sequence > struct apply
- {
- typedef typename begin<Sequence>::type iter_;
- typedef typename deref<iter_>::type type;
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,front_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/full_lambda.hpp,v $
-// $Date: 2004/09/04 01:10:19 $
-// $Revision: 1.14 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/lambda_fwd.hpp>
-# include <boost/mpl/bind_fwd.hpp>
-# include <boost/mpl/protect.hpp>
-# include <boost/mpl/quote.hpp>
-# include <boost/mpl/arg.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/int_fwd.hpp>
-# include <boost/mpl/aux_/template_arity.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/config/ttp.hpp>
-# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-# include <boost/mpl/if.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/lambda_arity_param.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-# define AUX778076_LAMBDA_PARAMS(i_, param) \
- BOOST_MPL_PP_PARAMS(i_, param) \
- /**/
-
-# define AUX778076_BIND_PARAMS(param) \
- BOOST_MPL_PP_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- ) \
- /**/
-
-# define AUX778076_BIND_N_PARAMS(i_, param) \
- BOOST_PP_COMMA_IF(i_) \
- BOOST_MPL_PP_PARAMS(i_, param) \
- /**/
-
-# define AUX778076_ARITY_PARAM(param) \
- BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \
- /**/
-
-
-#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-namespace aux {
-
-template<
- BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
- >
-struct lambda_or
- : true_
-{
-};
-
-template<>
-struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) >
- : false_
-{
-};
-
-} // namespace aux
-#undef n_
-
-template<
- typename T
- , typename Tag
- AUX778076_ARITY_PARAM(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 AUX778076_ARITY_PARAM(int_<-1>) >
-{
- typedef true_ is_le;
- typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
- typedef mpl::protect<result_> type;
-};
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/aux_/full_lambda.hpp>))
-#include BOOST_PP_ITERATE()
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag AUX778076_ARITY_PARAM(int_<1>) >
-{
- typedef false_ is_le;
- typedef mpl::protect<T> result_;
- typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-template<
- typename F, AUX778076_BIND_PARAMS(typename T)
- , typename Tag
- >
-struct lambda<
- bind<F,AUX778076_BIND_PARAMS(T)>
- , Tag
- AUX778076_ARITY_PARAM(int_<BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)>)
- >
-{
- typedef false_ is_le;
- typedef bind<F, AUX778076_BIND_PARAMS(T)> result_;
- typedef result_ type;
-};
-
-
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-
-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;
-};
-
-#elif !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
-
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-#endif
-
-# undef AUX778076_ARITY_PARAM
-# undef AUX778076_BIND_N_PARAMS
-# undef AUX778076_BIND_PARAMS
-# undef AUX778076_LAMBDA_PARAMS
-
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-#else
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-#endif
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if i_ > 0
-
-namespace aux {
-
-# define AUX778076_RESULT(unused, i_, T) \
- BOOST_PP_COMMA_IF(i_) \
- typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::result_ \
- /**/
-
-# define AUX778076_TYPE(unused, i_, T) \
- BOOST_PP_COMMA_IF(i_) \
- typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::type \
- /**/
-
-template<
- typename IsLE, typename Tag
- , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
- , AUX778076_LAMBDA_PARAMS(i_, typename L)
- >
-struct BOOST_PP_CAT(le_result,i_)
-{
- typedef F<
- BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L)
- > result_;
-
- typedef result_ type;
-};
-
-template<
- typename Tag
- , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
- , AUX778076_LAMBDA_PARAMS(i_, typename L)
- >
-struct BOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) >
-{
- typedef BOOST_PP_CAT(bind,i_)<
- BOOST_PP_CAT(quote,i_)<F,Tag>
- , BOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L)
- > result_;
-
- typedef mpl::protect<result_> type;
-};
-
-# undef AUX778076_TYPE
-# undef AUX778076_RESULT
-
-} // namespace aux
-
-
-# define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \
- typedef lambda< BOOST_PP_CAT(T, BOOST_PP_INC(i_)), Tag > \
- BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
-/**/
-
-# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
- typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
- BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
-/**/
-
-# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
- BOOST_PP_COMMA_IF(i_) \
- BOOST_PP_CAT(is_le,BOOST_PP_INC(i_))::value \
-/**/
-
-template<
- template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
- , AUX778076_LAMBDA_PARAMS(i_, typename T)
- , typename Tag
- >
-struct lambda<
- F<AUX778076_LAMBDA_PARAMS(i_, T)>
- , Tag
- AUX778076_ARITY_PARAM(int_<i_>)
- >
-{
- BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T)
- BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
-
- typedef typename aux::lambda_or<
- BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
- >::type is_le;
-
- typedef aux::BOOST_PP_CAT(le_result,i_)<
- is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l)
- > le_result_;
-
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-
-# undef AUX778076_IS_LAMBDA_EXPR
-# undef AUX778076_IS_LE_TYPEDEF
-# undef AUX778076_LAMBDA_TYPEDEF
-
-#endif // i_ > 0
-
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T)
- , typename Tag
- >
-struct lambda<
- BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_, T)>
- , Tag
- AUX778076_ARITY_PARAM(int_<BOOST_PP_INC(i_)>)
- >
-{
- typedef false_ is_le;
- typedef BOOST_PP_CAT(bind,i_)<
- F
- AUX778076_BIND_N_PARAMS(i_, T)
- > result_;
-
- typedef result_ type;
-};
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_apply.hpp,v $
-// $Date: 2004/09/03 15:56:55 $
-// $Revision: 1.1 $
-
-#include <boost/mpl/has_xxx.hpp>
-#include <boost/mpl/aux_/config/has_apply.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false)
-#else
-template< typename T, typename fallback_ = false_ >
-struct has_apply
- : fallback_
-{
-};
-#endif
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_begin.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_key_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/has_key_fwd.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag > struct has_key_impl
-{
- template< typename AssociativeSequence, typename Key > struct apply;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,has_key_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_rebind.hpp,v $
-// $Date: 2004/11/28 01:33:58 $
-// $Revision: 1.13 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/intel.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
-# include <boost/mpl/has_xxx.hpp>
-#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-# include <boost/mpl/has_xxx.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/msvc_is_class.hpp>
-#elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/yes_no.hpp>
-# include <boost/mpl/aux_/config/static_constant.hpp>
-# include <boost/type_traits/is_class.hpp>
-#else
-# include <boost/mpl/aux_/type_wrapper.hpp>
-# include <boost/mpl/aux_/yes_no.hpp>
-# include <boost/mpl/aux_/config/static_constant.hpp>
-#endif
-
-namespace boost { namespace mpl { namespace aux {
-
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
-
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
-
-#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
-
-template< typename T >
-struct has_rebind
- : if_<
- msvc_is_class<T>
- , has_rebind_impl<T>
- , bool_<false>
- >::type
-{
-};
-
-#else // the rest
-
-template< typename T > struct has_rebind_tag {};
-no_tag operator|(has_rebind_tag<int>, void const volatile*);
-
-# if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-template< typename T >
-struct has_rebind
-{
- static has_rebind_tag<T>* get();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
- );
-};
-# else // __BORLANDC__
-template< typename T >
-struct has_rebind_impl
-{
- static T* get();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
- );
-};
-
-template< typename T >
-struct has_rebind
- : if_<
- is_class<T>
- , has_rebind_impl<T>
- , bool_<false>
- >::type
-{
-};
-# endif // __BORLANDC__
-
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_size.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_DEF(size)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_tag.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_type.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/include_preprocessed.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/compiler.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX_PREPROCESSED_HEADER \
- BOOST_MPL_CFG_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-# define AUX_PREPROCESSED_HEADER \
- BOOST_PP_CAT(BOOST_MPL_CFG_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX_PREPROCESSED_HEADER)
-# undef AUX_PREPROCESSED_HEADER
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
+++ /dev/null
-
-#ifndef BOOST_MPL_INSERT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_INSERT_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/insert_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/clear.hpp>
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'insert_impl' or the primary 'insert' template
-
-template< typename Tag >
-struct insert_impl
-{
- template<
- typename Sequence
- , typename Pos
- , typename T
- >
- struct apply
- {
- typedef iterator_range<
- typename begin<Sequence>::type
- , Pos
- > first_half_;
-
- typedef iterator_range<
- Pos
- , typename end<Sequence>::type
- > second_half_;
-
- typedef typename reverse_fold<
- second_half_
- , typename clear<Sequence>::type
- , push_front<_,_>
- >::type half_sequence_;
-
- typedef typename reverse_fold<
- first_half_
- , typename push_front<half_sequence_,T>::type
- , push_front<_,_>
- >::type type;
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_impl)
-
-}}
-
-#endif // BOOST_MPL_INSERT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/insert_range_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/copy.hpp>
-#include <boost/mpl/clear.hpp>
-#include <boost/mpl/front_inserter.hpp>
-#include <boost/mpl/joint_view.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/iter_push_front.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-#include <boost/type_traits/same_traits.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'insert_range_impl' or the primary
-// 'insert_range' template
-
-
-template< typename Tag >
-struct insert_range_impl
-{
- template<
- typename Sequence
- , typename Pos
- , typename Range
- >
- struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : reverse_copy<
- joint_view<
- iterator_range<typename begin<Sequence>::type,Pos>
- , joint_view<
- Range
- , iterator_range<Pos,typename end<Sequence>::type>
- >
- >
- , front_inserter< typename clear<Sequence>::type >
- >
- {
-#else
- {
- typedef typename reverse_copy<
- joint_view<
- iterator_range<typename begin<Sequence>::type,Pos>
- , joint_view<
- Range
- , iterator_range<Pos,typename end<Sequence>::type>
- >
- >
- , front_inserter< typename clear<Sequence>::type >
- >::type type;
-#endif
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_range_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
-#define BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/inserter_algorithm.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/back_inserter.hpp>
-#include <boost/mpl/front_inserter.hpp>
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/back_inserter.hpp>
-#include <boost/mpl/front_inserter.hpp>
-#include <boost/mpl/clear.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-#include <boost/preprocessor/arithmetic/dec.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-# define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
- BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
- > \
-struct name \
- : aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
-{ \
-}; \
-\
-template< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
- > \
-struct name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \
- : if_< has_push_back<P1> \
- , aux::name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , back_inserter< typename clear<P1>::type > \
- > \
- , aux::reverse_##name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , front_inserter< typename clear<P1>::type > \
- > \
- >::type \
-{ \
-}; \
-\
-template< \
- BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
- > \
-struct reverse_##name \
- : aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
-{ \
-}; \
-\
-template< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
- > \
-struct reverse_##name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \
- : if_< has_push_back<P1> \
- , aux::reverse_##name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , back_inserter< typename clear<P1>::type > \
- > \
- , aux::name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , front_inserter< typename clear<P1>::type > \
- > \
- >::type \
-{ \
-}; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#else
-
-# define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
- > \
-struct def_##name##_impl \
- : if_< has_push_back<P1> \
- , aux::name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , back_inserter< typename clear<P1>::type > \
- > \
- , aux::reverse_##name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , front_inserter< typename clear<P1>::type > \
- > \
- >::type \
-{ \
-}; \
-\
-template< \
- BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
- > \
-struct name \
-{ \
- typedef typename eval_if< \
- is_na<BOOST_PP_CAT(P, arity)> \
- , def_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
- , aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
- >::type type; \
-}; \
-\
-template< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
- > \
-struct def_reverse_##name##_impl \
- : if_< has_push_back<P1> \
- , aux::reverse_##name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , back_inserter< typename clear<P1>::type > \
- > \
- , aux::name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , front_inserter< typename clear<P1>::type > \
- > \
- >::type \
-{ \
-}; \
-template< \
- BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
- > \
-struct reverse_##name \
-{ \
- typedef typename eval_if< \
- is_na<BOOST_PP_CAT(P, arity)> \
- , def_reverse_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
- , aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
- >::type type; \
-}; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
+++ /dev/null
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/integral_wrapper.hpp,v $
-// $Date$
-// $Revision$
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/mpl/integral_c_tag.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-#if !defined(AUX_WRAPPER_NAME)
-# define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_)
-#endif
-
-#if !defined(AUX_WRAPPER_PARAMS)
-# define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N)
-#endif
-
-#if !defined(AUX_WRAPPER_INST)
-# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
-# define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value >
-# else
-# define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
-# endif
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< AUX_WRAPPER_PARAMS(N) >
-struct AUX_WRAPPER_NAME
-{
- BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N);
-// agurt, 08/mar/03: SGI MIPSpro C++ workaround, have to #ifdef because some
-// other compilers (e.g. MSVC) are not particulary happy about it
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
- typedef struct AUX_WRAPPER_NAME type;
-#else
- typedef AUX_WRAPPER_NAME type;
-#endif
- typedef AUX_WRAPPER_VALUE_TYPE value_type;
- typedef integral_c_tag tag;
-
-// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
-// while some other don't like 'value + 1' (Borland), and some don't like
-// either
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
- private:
- BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
- BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
- public:
- typedef AUX_WRAPPER_INST(next_value) next;
- typedef AUX_WRAPPER_INST(prior_value) prior;
-#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
- || BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
- typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next;
- typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior;
-#else
- typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next;
- typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
-#endif
-
- // enables uniform function call syntax for families of overloaded
- // functions that return objects of both arithmetic ('int', 'long',
- // 'double', etc.) and wrapped integral types (for an example, see
- // "mpl/example/power.cpp")
- operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast<AUX_WRAPPER_VALUE_TYPE>(this->value); }
-};
-
-#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-template< AUX_WRAPPER_PARAMS(N) >
-AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value;
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#undef AUX_WRAPPER_NAME
-#undef AUX_WRAPPER_PARAMS
-#undef AUX_WRAPPER_INST
-#undef AUX_WRAPPER_VALUE_TYPE
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
-#define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-
-template< typename T >
-struct is_msvc_eti_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#else // BOOST_MPL_CFG_MSVC_60_ETI_BUG
-
-struct eti_int_convertible
-{
- eti_int_convertible(int);
-};
-
-template< typename T >
-struct is_msvc_eti_arg
-{
- static no_tag test(...);
- static yes_tag test(eti_int_convertible);
- static T& get();
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(test(get())) == sizeof(yes_tag)
- );
-};
-
-#endif
-
-template<>
-struct is_msvc_eti_arg<int>
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-#endif // BOOST_MPL_CFG_MSVC_ETI_BUG
-
-}}}
-
-#endif // BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITER_APPLY_HPP_INCLUDED
-#define BOOST_MPL_ITER_APPLY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/iter_apply.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/deref.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template<
- typename F
- , typename Iterator
- >
-struct iter_apply1
- : apply1< F,typename deref<Iterator>::type >
-{
-};
-
-template<
- typename F
- , typename Iterator1
- , typename Iterator2
- >
-struct iter_apply2
- : apply2<
- F
- , typename deref<Iterator1>::type
- , typename deref<Iterator2>::type
- >
-{
-};
-
-}}}
-
-#endif // BOOST_MPL_ITER_APPLY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/iter_fold_if_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.8 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/identity.hpp>
-# include <boost/mpl/next.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/unrolling.hpp>
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/dec.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-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;
- };
-};
-
-// agurt, 25/jun/02: MSVC 6.5 workaround, had to get rid of inheritance
-// here and in 'iter_fold_if_backward_step', because sometimes it interfered
-// with the "early template instantiation bug" in _really_ ugly ways
-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;
-};
-
-
-// local macros, #undef-ined at the end of the header
-
-# define AUX_ITER_FOLD_FORWARD_STEP(unused, i, unused2) \
- typedef iter_fold_if_forward_step< \
- typename BOOST_PP_CAT(forward_step,i)::iterator \
- , typename BOOST_PP_CAT(forward_step,i)::state \
- , ForwardOp \
- , ForwardPredicate \
- > BOOST_PP_CAT(forward_step, BOOST_PP_INC(i)); \
- /**/
-
-# define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \
- typedef iter_fold_if_backward_step< \
- typename BOOST_PP_CAT(forward_step,BOOST_PP_DEC(i))::iterator \
- , typename BOOST_PP_CAT(backward_step,i)::state \
- , BackwardOp \
- , BackwardPredicate \
- > BOOST_PP_CAT(backward_step,BOOST_PP_DEC(i)); \
- /**/
-
-# define AUX_ITER_FOLD_BACKWARD_STEP(unused, i, unused2) \
- AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \
- BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_UNROLLING,i) \
- ) \
- /**/
-
-# define AUX_LAST_FORWARD_STEP \
- BOOST_PP_CAT(forward_step, BOOST_MPL_LIMIT_UNROLLING) \
- /**/
-
-# define AUX_LAST_BACKWARD_STEP \
- BOOST_PP_CAT(backward_step, BOOST_MPL_LIMIT_UNROLLING) \
- /**/
-
-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;
- BOOST_PP_REPEAT(
- BOOST_MPL_LIMIT_UNROLLING
- , AUX_ITER_FOLD_FORWARD_STEP
- , unused
- )
-
- typedef typename if_<
- typename AUX_LAST_FORWARD_STEP::not_last
- , iter_fold_if_impl<
- typename AUX_LAST_FORWARD_STEP::iterator
- , typename AUX_LAST_FORWARD_STEP::state
- , ForwardOp
- , ForwardPredicate
- , BackwardOp
- , BackwardPredicate
- >
- , iter_fold_if_null_step<
- typename AUX_LAST_FORWARD_STEP::iterator
- , typename AUX_LAST_FORWARD_STEP::state
- >
- >::type AUX_LAST_BACKWARD_STEP;
-
- BOOST_PP_REPEAT(
- BOOST_MPL_LIMIT_UNROLLING
- , AUX_ITER_FOLD_BACKWARD_STEP
- , unused
- )
-
- public:
- typedef typename backward_step0::state state;
- typedef typename AUX_LAST_BACKWARD_STEP::iterator iterator;
-};
-
-# undef AUX_LAST_BACKWARD_STEP
-# undef AUX_LAST_FORWARD_STEP
-# undef AUX_ITER_FOLD_BACKWARD_STEP
-# undef AUX_ITER_FOLD_BACKWARD_STEP_FUNC
-# undef AUX_ITER_FOLD_FORWARD_STEP
-
-}}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/iter_fold_impl.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/next_prior.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/mpl/if.hpp>
-# include <boost/type_traits/is_same.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# define AUX778076_FOLD_IMPL_OP(iter) iter
-# define AUX778076_FOLD_IMPL_NAME_PREFIX iter_fold
-# include <boost/mpl/aux_/fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/iter_push_front.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/deref.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template<
- typename Sequence
- , typename Iterator
- >
-struct iter_push_front
-{
- typedef typename push_front<
- Sequence
- , typename deref<Iterator>::type
- >::type type;
-};
-
-}}}
-
-#endif // BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED
-#define BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/joint_iter.hpp,v $
-// $Date: 2004/10/01 16:29:34 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/type_traits/is_same.hpp>
-#endif
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename Iterator1
- , typename LastIterator1
- , typename Iterator2
- >
-struct joint_iter
-{
- typedef Iterator1 base;
- typedef forward_iterator_tag category;
-};
-
-template<
- typename LastIterator1
- , typename Iterator2
- >
-struct joint_iter<LastIterator1,LastIterator1,Iterator2>
-{
- typedef Iterator2 base;
- typedef forward_iterator_tag category;
-};
-
-
-template< typename I1, typename L1, typename I2 >
-struct deref< joint_iter<I1,L1,I2> >
-{
- typedef typename joint_iter<I1,L1,I2>::base base_;
- typedef typename deref<base_>::type type;
-};
-
-template< typename I1, typename L1, typename I2 >
-struct next< joint_iter<I1,L1,I2> >
-{
- typedef joint_iter< typename mpl::next<I1>::type,L1,I2 > type;
-};
-
-template< typename L1, typename I2 >
-struct next< joint_iter<L1,L1,I2> >
-{
- typedef joint_iter< L1,L1,typename mpl::next<I2>::type > type;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<
- typename Iterator1
- , typename LastIterator1
- , typename Iterator2
- >
-struct joint_iter;
-
-template< bool > struct joint_iter_impl
-{
- template< typename I1, typename L1, typename I2 > struct result_
- {
- typedef I1 base;
- typedef forward_iterator_tag category;
- typedef joint_iter< typename mpl::next<I1>::type,L1,I2 > next;
- typedef typename deref<I1>::type type;
- };
-};
-
-template<> struct joint_iter_impl<true>
-{
- template< typename I1, typename L1, typename I2 > struct result_
- {
- typedef I2 base;
- typedef forward_iterator_tag category;
- typedef joint_iter< L1,L1,typename mpl::next<I2>::type > next;
- typedef typename deref<I2>::type type;
- };
-};
-
-template<
- typename Iterator1
- , typename LastIterator1
- , typename Iterator2
- >
-struct joint_iter
- : joint_iter_impl< is_same<Iterator1,LastIterator1>::value >
- ::template result_<Iterator1,LastIterator1,Iterator2>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, joint_iter)
-
-}}
-
-#endif // BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_arity_param.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param)
-#else
-# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param
-#endif
-
-#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_no_ctps.hpp,v $
-// $Date: 2004/09/07 12:24:48 $
-// $Revision: 1.14 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/lambda_fwd.hpp>
-# include <boost/mpl/bind_fwd.hpp>
-# include <boost/mpl/protect.hpp>
-# include <boost/mpl/is_placeholder.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/identity.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-# include <boost/mpl/aux_/template_arity.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-# define AUX778076_LAMBDA_PARAMS(i_, param) \
- BOOST_MPL_PP_PARAMS(i_, param) \
- /**/
-
-namespace aux {
-
-#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-template<
- BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
- >
-struct lambda_or
- : true_
-{
-};
-
-template<>
-struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) >
- : false_
-{
-};
-#undef n_
-
-template< typename Arity > struct lambda_impl
-{
- template< typename T, typename Tag, typename Protect > struct result_
- {
- typedef T type;
- typedef is_placeholder<T> is_le;
- };
-};
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/aux_/lambda_no_ctps.hpp>))
-#include BOOST_PP_ITERATE()
-
-} // 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
-{
-};
-
-# undef AUX778076_LAMBDA_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#else
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-# define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \
- typedef lambda< \
- typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i_)) \
- , Tag \
- , false_ \
- > BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
- /**/
-
-# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
- typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
- BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
- /**/
-
-# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
- BOOST_PP_COMMA_IF(i_) \
- BOOST_MPL_AUX_MSVC_VALUE_WKND(BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)))::value \
- /**/
-
-# define AUX778076_LAMBDA_RESULT(unused, i_, unused2) \
- , typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::type \
- /**/
-
-template<> struct lambda_impl< int_<i_> >
-{
- template< typename F, typename Tag, typename Protect > struct result_
- {
- BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F)
- BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
-
- typedef aux::lambda_or<
- BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
- > is_le;
-
- typedef BOOST_PP_CAT(bind,i_)<
- typename F::rebind
- BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused)
- > bind_;
-
- typedef typename if_<
- is_le
- , if_< Protect, mpl::protect<bind_>, bind_ >
- , identity<F>
- >::type type_;
-
- typedef typename type_::type type;
- };
-};
-
-# undef AUX778076_LAMBDA_RESULT
-# undef AUX778076_IS_LAMBDA_EXPR
-# undef AUX778076_IS_LE_TYPEDEF
-# undef AUX778076_LAMBDA_TYPEDEF
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_spec.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/lambda_fwd.hpp>
-#include <boost/mpl/int_fwd.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/lambda_arity_param.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-# define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \
-template< \
- BOOST_MPL_PP_PARAMS(i, typename T) \
- , typename Tag \
- > \
-struct lambda< \
- name< BOOST_MPL_PP_PARAMS(i, T) > \
- , Tag \
- BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<i>) \
- > \
-{ \
- typedef false_ is_le; \
- typedef name< BOOST_MPL_PP_PARAMS(i, T) > type; \
-}; \
-/**/
-
-#else
-
-# define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_support.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/
-
-#else
-
-# include <boost/mpl/int_fwd.hpp>
-# include <boost/mpl/aux_/yes_no.hpp>
-# include <boost/mpl/aux_/na_fwd.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# include <boost/preprocessor/tuple/to_list.hpp>
-# include <boost/preprocessor/list/for_each_i.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \
- typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \
- /**/
-
-// agurt, 07/mar/03: restore an old revision for the sake of SGI MIPSpro C++
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
- typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
- BOOST_PP_LIST_FOR_EACH_I_R( \
- 1 \
- , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
- , typedef \
- , BOOST_PP_TUPLE_TO_LIST(i,params) \
- ) \
- struct rebind \
- { \
- template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
- : name< BOOST_MPL_PP_PARAMS(i,U) > \
- { \
- }; \
- }; \
- /**/
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
- /**/
-
-#elif BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
-// agurt, 18/jan/03: old EDG-based compilers actually enforce 11.4 para 9
-// (in strict mode), so we have to provide an alternative to the
-// MSVC-optimized implementation
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
- typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
- BOOST_PP_LIST_FOR_EACH_I_R( \
- 1 \
- , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
- , typedef \
- , BOOST_PP_TUPLE_TO_LIST(i,params) \
- ) \
- struct rebind; \
-/**/
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-struct name<BOOST_MPL_PP_PARAMS(i,T)>::rebind \
-{ \
- template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
- : name< BOOST_MPL_PP_PARAMS(i,U) > \
- { \
- }; \
-/**/
-
-#else // __EDG_VERSION__
-
-namespace boost { namespace mpl { namespace aux {
-template< typename T > struct has_rebind_tag;
-}}}
-
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
- typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
- BOOST_PP_LIST_FOR_EACH_I_R( \
- 1 \
- , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
- , typedef \
- , BOOST_PP_TUPLE_TO_LIST(i,params) \
- ) \
- friend class BOOST_PP_CAT(name,_rebind); \
- typedef BOOST_PP_CAT(name,_rebind) rebind; \
-/**/
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-::boost::mpl::aux::yes_tag operator|( \
- ::boost::mpl::aux::has_rebind_tag<int> \
- , name<BOOST_MPL_PP_PARAMS(i,T)>* \
- ); \
-::boost::mpl::aux::no_tag operator|( \
- ::boost::mpl::aux::has_rebind_tag<int> \
- , name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \
- ); \
-/**/
-#elif !BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-::boost::mpl::aux::yes_tag operator|( \
- ::boost::mpl::aux::has_rebind_tag<int> \
- , ::boost::mpl::aux::has_rebind_tag< name<BOOST_MPL_PP_PARAMS(i,T)> >* \
- ); \
-/**/
-#else
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
-#endif
-
-# if !defined(__BORLANDC__)
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class BOOST_PP_CAT(name,_rebind) \
-{ \
- public: \
- template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
- : name< BOOST_MPL_PP_PARAMS(i,U) > \
- { \
- }; \
-/**/
-# else
-# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class BOOST_PP_CAT(name,_rebind) \
-{ \
- public: \
- template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
- { \
- typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \
- }; \
-/**/
-# endif // __BORLANDC__
-
-#endif // __EDG_VERSION__
-
-#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-#define BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/largest_int.hpp,v $
-// $Date: 2004/09/19 03:08:53 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/config.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct integral_rank;
-
-template<> struct integral_rank<bool> : int_<1> {};
-template<> struct integral_rank<signed char> : int_<2> {};
-template<> struct integral_rank<char> : int_<3> {};
-template<> struct integral_rank<unsigned char> : int_<4> {};
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-template<> struct integral_rank<wchar_t> : int_<5> {};
-#endif
-template<> struct integral_rank<short> : int_<6> {};
-template<> struct integral_rank<unsigned short> : int_<7> {};
-template<> struct integral_rank<int> : int_<8> {};
-template<> struct integral_rank<unsigned int> : int_<9> {};
-template<> struct integral_rank<long> : int_<10> {};
-template<> struct integral_rank<unsigned long> : int_<11> {};
-
-#if defined(BOOST_HAS_LONG_LONG)
-template<> struct integral_rank<long_long_type> : int_<12> {};
-template<> struct integral_rank<ulong_long_type>: int_<13> {};
-#endif
-
-template< typename T1, typename T2 > struct largest_int
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
- : if_c<
- ( integral_rank<T1>::value >= integral_rank<T2>::value )
- , T1
- , T2
- >
-{
-#else
-{
- enum { rank1 = integral_rank<T1>::value };
- enum { rank2 = integral_rank<T2>::value };
- typedef typename if_c< (rank1 >= rank2),T1,T2 >::type type;
-#endif
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
+++ /dev/null
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/logical_op.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.3 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/nested_type_wknd.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/ext_params.hpp>
-#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <boost/mpl/aux_/preprocessor/enum.hpp>
-#include <boost/mpl/aux_/preprocessor/sub.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-# define AUX778076_PARAMS(param, sub) \
- BOOST_MPL_PP_PARAMS( \
- BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
- , param \
- ) \
- /**/
-
-# define AUX778076_SHIFTED_PARAMS(param, sub) \
- BOOST_MPL_PP_EXT_PARAMS( \
- 2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \
- , param \
- ) \
- /**/
-
-# define AUX778076_SPEC_PARAMS(param) \
- BOOST_MPL_PP_ENUM( \
- BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
- , param \
- ) \
- /**/
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< bool C_, AUX778076_PARAMS(typename T, 1) >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
- : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
-{
-};
-
-template< AUX778076_PARAMS(typename T, 1) >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) >
- : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- , AUX778076_SHIFTED_PARAMS(T, 1)
- , BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
- >
-{
-};
-
-template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- AUX778076_OP_VALUE2
- , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
- >
- : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-{
-};
-
-#else
-
-template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
-{
- template< AUX778076_PARAMS(typename T, 1) > struct result_
- : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
- {
- };
-};
-
-template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
-{
- template< AUX778076_PARAMS(typename T, 1) > struct result_
- : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
- {
- };
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- template<> struct result_<AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
- : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
- {
- };
-};
-#else
-};
-
-template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
- ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
- : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-{
-};
-#endif // BOOST_MSVC == 1300
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
- >
-struct AUX778076_OP_NAME
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- , AUX778076_SHIFTED_PARAMS(T,0)
- >
-#else
- : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
-#endif
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY
- , AUX778076_OP_NAME
- , (AUX778076_PARAMS(T, 0))
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , BOOST_MPL_LIMIT_METAFUNCTION_ARITY
- , AUX778076_OP_NAME
- )
-
-}}
-
-#undef AUX778076_SPEC_PARAMS
-#undef AUX778076_SHIFTED_PARAMS
-#undef AUX778076_PARAMS
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_VALUE1
-#undef AUX778076_OP_VALUE2
+++ /dev/null
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_dtw.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-
-// local macros, #undef-ined at the end of the header
-#define AUX778076_DTW_PARAMS(param) \
- BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
-/**/
-
-#define AUX778076_DTW_ORIGINAL_NAME \
- AUX778076_MSVC_DTW_ORIGINAL_NAME \
-/**/
-
-// warning: not a well-formed C++
-// workaround for MSVC 6.5's "dependent template typedef bug"
-
-template< typename F>
-struct AUX778076_MSVC_DTW_NAME
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
-#if AUX778076_MSVC_DTW_ARITY > 0
- template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME
- {
- typedef int type;
- };
- };
-
- template< AUX778076_DTW_PARAMS(typename T) > struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) >
- {
- };
-#else
- template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME
- {
- typedef int type;
- };
- };
-
- template< typename T = int > struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template AUX778076_DTW_ORIGINAL_NAME<>
- {
- };
-#endif
-};
-
-#undef AUX778076_DTW_ORIGINAL_NAME
-#undef AUX778076_DTW_PARAMS
-
-#undef AUX778076_MSVC_DTW_NAME
-#undef AUX778076_MSVC_DTW_ORIGINAL_NAME
-#undef AUX778076_MSVC_DTW_ARITY
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_eti_base.hpp,v $
-// $Date: 2004/11/28 01:37:05 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-
-template< bool > struct msvc_eti_base_impl
-{
- template< typename T > struct result_
- : T
- {
- typedef T type;
- };
-};
-
-template<> struct msvc_eti_base_impl<true>
-{
- template< typename T > struct result_
- {
- typedef result_ type;
- typedef result_ first;
- typedef result_ second;
- typedef result_ tag;
- enum { value = 0 };
- };
-};
-
-template< typename T > struct msvc_eti_base
- : msvc_eti_base_impl< is_msvc_eti_arg<T>::value >
- ::template result_<T>
-{
-};
-
-#else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-template< typename T > struct msvc_eti_base
- : T
-{
-#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
- msvc_eti_base();
-#endif
- typedef T type;
-};
-
-#endif
-
-template<> struct msvc_eti_base<int>
-{
- typedef msvc_eti_base type;
- typedef msvc_eti_base first;
- typedef msvc_eti_base second;
- typedef msvc_eti_base tag;
- enum { value = 0 };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_is_class.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-
-#include <boost/type_traits/is_reference.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct is_class_helper
-{
- typedef int (T::* type)();
-};
-
-// MSVC 6.x-specific lightweight 'is_class' implementation;
-// Distinguishing feature: does not instantiate the type being tested.
-template< typename T >
-struct msvc_is_class_impl
-{
- template< typename U>
- static yes_tag test(type_wrapper<U>*, /*typename*/ is_class_helper<U>::type = 0);
- static no_tag test(void const volatile*, ...);
-
- enum { value = sizeof(test((type_wrapper<T>*)0)) == sizeof(yes_tag) };
- typedef bool_<value> type;
-};
-
-// agurt, 17/sep/04: have to check for 'is_reference' upfront to avoid ICEs in
-// complex metaprograms
-template< typename T >
-struct msvc_is_class
- : if_<
- is_reference<T>
- , false_
- , msvc_is_class_impl<T>
- >::type
-{
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_never_true.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T >
-struct msvc_never_true
-{
- enum { value = false };
-};
-
-}}}
-
-#endif // BOOST_MSVC
-
-#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_type.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.1 $
-
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-
-template< bool > struct msvc_type_impl
-{
- template< typename T > struct result_
- {
- typedef typename T::type type;
- };
-};
-
-template<> struct msvc_type_impl<true>
-{
- template< typename T > struct result_
- {
- typedef result_ type;
- };
-};
-
-template< typename T > struct msvc_type
- : msvc_type_impl< is_msvc_eti_arg<T>::value >
- ::template result_<T>
-{
-};
-
-#else // BOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-template< typename T > struct msvc_type
-{
- typedef typename T::type type;
-};
-
-template<> struct msvc_type<int>
-{
- typedef int type;
-};
-
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NA_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/na_fwd.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T >
-struct is_na
- : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using false_::value;
-#endif
-};
-
-template<>
-struct is_na<na>
- : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using true_::value;
-#endif
-};
-
-template< typename T >
-struct is_not_na
- : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using true_::value;
-#endif
-};
-
-template<>
-struct is_not_na<na>
- : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using false_::value;
-#endif
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename T, typename U > struct if_na
-{
- typedef T type;
-};
-
-template< typename U > struct if_na<na,U>
-{
- typedef U type;
-};
-#else
-template< typename T > struct if_na_impl
-{
- template< typename U > struct apply
- {
- typedef T type;
- };
-};
-
-template<> struct if_na_impl<na>
-{
- template< typename U > struct apply
- {
- typedef U type;
- };
-};
-
-template< typename T, typename U > struct if_na
- : if_na_impl<T>::template apply<U>
-{
-};
-#endif
-
-}}
-
-#endif // BOOST_MPL_AUX_NA_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na_assert.hpp,v $
-// $Date: 2005/07/13 13:13:38 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !BOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
-# include <boost/mpl/assert.hpp>
-# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
- BOOST_MPL_ASSERT_NOT((boost::mpl::is_na<type>)) \
-/**/
-#else
-# include <boost/static_assert.hpp>
-# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
- BOOST_STATIC_ASSERT(!boost::mpl::is_na<x>::value) \
-/**/
-#endif
-
-#endif // BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// n.a. == not available
-struct na
-{
- typedef na type;
- enum { value = 0 };
-};
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(na)
-
-#endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na_spec.hpp,v $
-// $Date$
-// $Revision$
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/lambda_fwd.hpp>
-# include <boost/mpl/int.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/arity.hpp>
-# include <boost/mpl/aux_/template_arity_fwd.hpp>
-#endif
-
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/enum.hpp>
-#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <boost/mpl/aux_/lambda_arity_param.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-
-
-#define BOOST_MPL_AUX_NA_PARAMS(i) \
- BOOST_MPL_PP_ENUM(i, na) \
-/**/
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-namespace aux { \
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > \
-struct arity< \
- name< BOOST_MPL_AUX_NA_PARAMS(i) > \
- , N \
- > \
- : int_< BOOST_MPL_LIMIT_METAFUNCTION_ARITY > \
-{ \
-}; \
-} \
-/**/
-#else
-# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/
-#endif
-
-#define BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-template<> \
-struct name< BOOST_MPL_AUX_NA_PARAMS(i) > \
-{ \
- template< \
- BOOST_MPL_PP_PARAMS(i, typename T) \
- BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \
- > \
- struct apply \
- : name< BOOST_MPL_PP_PARAMS(i, T) > \
- { \
- }; \
-}; \
-/**/
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-template<> \
-struct lambda< \
- name< BOOST_MPL_AUX_NA_PARAMS(i) > \
- , void_ \
- , true_ \
- > \
-{ \
- typedef false_ is_le; \
- typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-template<> \
-struct lambda< \
- name< BOOST_MPL_AUX_NA_PARAMS(i) > \
- , void_ \
- , false_ \
- > \
-{ \
- typedef false_ is_le; \
- typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-/**/
-#else
-# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-template< typename Tag > \
-struct lambda< \
- name< BOOST_MPL_AUX_NA_PARAMS(i) > \
- , Tag \
- BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
- > \
-{ \
- typedef false_ is_le; \
- typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > result_; \
- typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-/**/
-#endif
-
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
- || defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
- && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
-namespace aux { \
-template< BOOST_MPL_PP_PARAMS(j, typename T) > \
-struct template_arity< \
- name< BOOST_MPL_PP_PARAMS(j, T) > \
- > \
- : int_<j> \
-{ \
-}; \
-\
-template<> \
-struct template_arity< \
- name< BOOST_MPL_PP_ENUM(i, na) > \
- > \
- : int_<-1> \
-{ \
-}; \
-} \
-/**/
-#else
-# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/
-#endif
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-template<> \
-struct name< BOOST_MPL_PP_ENUM(i, int) > \
-{ \
- typedef int type; \
- enum { value = 0 }; \
-}; \
-/**/
-#else
-# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/
-#endif
-
-#define BOOST_MPL_AUX_NA_PARAM(param) param = na
-
-#define BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \
-/**/
-
-#define BOOST_MPL_AUX_NA_SPEC(i, name) \
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-/**/
-
-#define BOOST_MPL_AUX_NA_SPEC2(i, j, name) \
-BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
-/**/
-
-
-#endif // BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/nested_type_wknd.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \
- || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
-namespace boost { namespace mpl { namespace aux {
-template< typename T > struct nested_type_wknd
- : T::type
-{
-};
-}}}
-
-#if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
- aux::nested_type_wknd<T> \
-/**/
-#else
-# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
- ::boost::mpl::aux::nested_type_wknd<T> \
-/**/
-#endif
-
-#else // !BOOST_MPL_CFG_GCC et al.
-
-# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type
-
-#endif
-
-#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-#define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/nttp_decl.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/nttp.hpp>
-
-#if defined(BOOST_MPL_CFG_NTTP_BUG)
-
-typedef bool _mpl_nttp_bool;
-typedef int _mpl_nttp_int;
-typedef unsigned _mpl_nttp_unsigned;
-typedef long _mpl_nttp_long;
-
-# include <boost/preprocessor/cat.hpp>
-# define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/
-
-#else
-
-# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/numeric_cast_utils.hpp,v $
-// $Date: 2004/11/28 01:39:23 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/numeric_cast.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template<
- typename F
- , typename Tag1
- , typename Tag2
- >
-struct cast1st_impl
-{
- template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : apply_wrap2<
- F
- , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
- , N2
- >
- {
-#else
- {
- typedef typename apply_wrap2<
- F
- , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
- , N2
- >::type type;
-#endif
- };
-};
-
-template<
- typename F
- , typename Tag1
- , typename Tag2
- >
-struct cast2nd_impl
-{
- template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : apply_wrap2<
- F
- , N1
- , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
- >
- {
-#else
- {
- typedef typename apply_wrap2<
- F
- , N1
- , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
- >::type type;
-#endif
- };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/numeric_op.hpp,v $
-// $Date: 2004/12/20 19:17:06 $
-// $Revision: 1.9 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/numeric_cast.hpp>
-# include <boost/mpl/apply_wrap.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/tag.hpp>
-# include <boost/mpl/aux_/numeric_cast_utils.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-# include <boost/mpl/aux_/msvc_eti_base.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- || defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-# include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/preprocessor/ext_params.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/preprocessor/add.hpp>
-# include <boost/mpl/aux_/preprocessor/sub.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/eti.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# include <boost/preprocessor/dec.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-
-#if !defined(AUX778076_OP_ARITY)
-# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#endif
-
-#if !defined(AUX778076_OP_IMPL_NAME)
-# define AUX778076_OP_IMPL_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_impl)
-#endif
-
-#if !defined(AUX778076_OP_TAG_NAME)
-# define AUX778076_OP_TAG_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_tag)
-#endif
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct AUX778076_OP_IMPL_NAME
- : if_c<
- ( tag1_ > tag2_ )
-#else
- >
-struct AUX778076_OP_IMPL_NAME
- : if_c<
- ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
- > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
- )
-#endif
- , aux::cast2nd_impl< AUX778076_OP_IMPL_NAME<Tag1,Tag1>,Tag1,Tag2 >
- , aux::cast1st_impl< AUX778076_OP_IMPL_NAME<Tag2,Tag2>,Tag1,Tag2 >
- >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct AUX778076_OP_IMPL_NAME<na,na>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename Tag > struct AUX778076_OP_IMPL_NAME<na,Tag>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename Tag > struct AUX778076_OP_IMPL_NAME<Tag,na>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-#else
-template<> struct AUX778076_OP_IMPL_NAME<na,integral_c_tag>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct AUX778076_OP_IMPL_NAME<integral_c_tag,na>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-#endif
-
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && BOOST_WORKAROUND(BOOST_MSVC, != 1200)
-template< typename T > struct AUX778076_OP_TAG_NAME
- : tag<T,na>
-{
-};
-#else
-template< typename T > struct AUX778076_OP_TAG_NAME
-{
- typedef typename T::tag type;
-};
-#endif
-
-
-#if AUX778076_OP_ARITY != 2
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-# define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))>
-# define AUX778076_OP_N_CALLS(i, N) \
- BOOST_MPL_PP_REPEAT( BOOST_PP_DEC(i), BOOST_MPL_PP_REPEAT_IDENTITY_FUNC, AUX778076_OP_NAME< ) \
- N1 BOOST_MPL_PP_REPEAT( BOOST_MPL_PP_SUB(i, 1), AUX778076_OP_RIGHT_OPERAND, N ) \
-/**/
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
- >
-struct AUX778076_OP_NAME
- : AUX778076_OP_N_CALLS(AUX778076_OP_ARITY, N)
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- AUX778076_OP_ARITY
- , AUX778076_OP_NAME
- , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
- )
-};
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,( BOOST_PP_DEC(AUX778076_OP_ARITY), 2, <boost/mpl/aux_/numeric_op.hpp> ))
-#include BOOST_PP_ITERATE()
-
-# undef AUX778076_OP_N_CALLS
-# undef AUX778076_OP_RIGHT_OPERAND
-
-# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-/// forward declaration
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2);
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
- >
-struct AUX778076_OP_NAME
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- : aux::msvc_eti_base< typename if_<
-#else
- : if_<
-#endif
- is_na<N3>
- , BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
- , AUX778076_OP_NAME<
- BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
- , BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N)
- >
- >::type
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- >
-#endif
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- AUX778076_OP_ARITY
- , AUX778076_OP_NAME
- , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2)
-
-#endif
-
-#else // AUX778076_OP_ARITY == 2
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct AUX778076_OP_NAME
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
- : AUX778076_OP_IMPL_NAME<
- typename AUX778076_OP_TAG_NAME<N1>::type
- , typename AUX778076_OP_TAG_NAME<N2>::type
- >::template apply<N1,N2>::type
-#else
- : aux::msvc_eti_base< typename apply_wrap2<
- AUX778076_OP_IMPL_NAME<
- typename AUX778076_OP_TAG_NAME<N1>::type
- , typename AUX778076_OP_TAG_NAME<N2>::type
- >
- , N1
- , N2
- >::type >::type
-#endif
-{
-#if AUX778076_OP_ARITY != 2
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
- AUX778076_OP_ARITY
- , AUX778076_OP_NAME
- , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) )
- )
-# else
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, BOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2))
-# endif
-
-#else
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2))
-#endif
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME)
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-
-# define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- BOOST_MPL_PP_PARAMS(i_, typename N)
- >
-struct AUX778076_OP_NAME<BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na)>
-#if i_ != 2
- : AUX778076_OP_N_CALLS(i_, N)
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
- AUX778076_OP_ARITY
- , AUX778076_OP_NAME
- , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) )
- )
-};
-#endif
-
-# undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ORDER_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ORDER_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/order_impl.hpp,v $
-// $Date: 2004/10/13 18:23:20 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/order_fwd.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/has_key.hpp>
-#include <boost/mpl/aux_/overload_names.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; requires 'Seq' to provide corresponding overloads
-// of BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY
-
-template< typename Seq, typename Key > struct x_order_impl
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
- || BOOST_WORKAROUND(__EDG_VERSION__, <= 245)
-{
- BOOST_STATIC_CONSTANT(long, value =
- sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(
- Seq
- , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<Key>*, 0)
- ) )
- );
-
- typedef long_<value> type;
-
-#else // ISO98 C++
- : long_<
- sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(
- Seq
- , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<Key>*, 0)
- ) )
- >
-{
-#endif
-};
-
-template< typename Tag >
-struct order_impl
-{
- template< typename Seq, typename Key > struct apply
- : if_<
- typename has_key_impl<Tag>::template apply<Seq,Key>
- , x_order_impl<Seq,Key>
- , void_
- >::type
- {
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,order_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_ORDER_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED
-#define BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/overload_names.hpp,v $
-// $Date: 2004/10/13 18:23:20 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/ptr_to_ref.hpp>
-#include <boost/mpl/aux_/config/operators.hpp>
-
-#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING)
-
-# include <boost/mpl/aux_/static_cast.hpp>
-
-# define BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY operator/
-# define BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER operator|
-# define BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY operator||
-# define BOOST_MPL_AUX_OVERLOAD_IS_MASKED operator%
-
-# define BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) / x
-# define BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) | x
-# define BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) || x
-# define BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) % x
-
-#else
-
-# define BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY value_by_key_
-# define BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER item_by_order_
-# define BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY order_by_key_
-# define BOOST_MPL_AUX_OVERLOAD_IS_MASKED is_masked_
-
-# define BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(T, x) T::BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY( BOOST_MPL_AUX_PTR_TO_REF(T), x )
-# define BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(T, x) T::BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER( BOOST_MPL_AUX_PTR_TO_REF(T), x )
-# define BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(T, x) T::BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY( BOOST_MPL_AUX_PTR_TO_REF(T), x )
-# define BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(T, x) T::BOOST_MPL_AUX_OVERLOAD_IS_MASKED( BOOST_MPL_AUX_PTR_TO_REF(T), x )
-
-#endif
-
-#endif // BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED
-#define BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED
-
-// Copyright Eric Friedman 2003
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/partition_op.hpp,v $
-// $Date: 2004/11/28 01:46:37 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Pred, typename In1Op, typename In2Op >
-struct partition_op
-{
- template< typename State, typename T >
- struct apply
- {
- typedef typename State::first first_;
- typedef typename State::second second_;
- typedef typename apply1< Pred,T >::type pred_;
-
- typedef typename eval_if<
- pred_
- , apply2<In1Op,first_,T>
- , apply2<In2Op,second_,T>
- >::type result_;
-
- typedef typename if_<
- pred_
- , pair< result_,second_ >
- , pair< first_,result_ >
- >::type type;
- };
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::partition_op)
-
-}}
-
-#endif // BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/pop_back_impl.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/pop_back_fwd.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag >
-struct pop_back_impl
-{
- template< typename Sequence > struct apply;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, pop_back_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/pop_front_impl.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/pop_front_fwd.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag >
-struct pop_front_impl
-{
- template< typename Sequence > struct apply
- // conservatively placed, but maybe should go outside surrounding
- // braces.
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- {
- typedef int type;
- }
-#endif
- ;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, pop_front_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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>
-{
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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>
-{
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
-
- , typename has_apply_ = typename aux::has_apply<F>::type
-
- >
-struct apply_wrap0
-
- : F::template apply< >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
- : F::apply
-{
-};
-
-template<
- typename F, typename T1
-
- >
-struct apply_wrap1
-
- : F::template apply<T1>
-{
-};
-
-template<
- typename F, typename T1, typename T2
-
- >
-struct apply_wrap2
-
- : F::template apply< T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
-
- >
-struct apply_wrap3
-
- : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
-
- >
-struct apply_wrap4
-
- : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
-
- >
-struct apply_wrap5
-
- : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F, int dummy_
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1, int dummy_
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, int dummy_
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, int dummy_
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , int dummy_
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- , int dummy_
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5, int dummy_
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5, int dummy_
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F, int dummy_
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1, int dummy_
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, int dummy_
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, int dummy_
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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, int dummy_
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , int dummy_
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- , int dummy_
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5, int dummy_
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5, int dummy_
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind_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, int dummy_ = 0
- >
-struct bind;
-
-template<
- typename F, int dummy_ = 0
- >
-struct bind0;
-
-template<
- typename F, typename T1, int dummy_ = 0
- >
-struct bind1;
-
-template<
- typename F, typename T1, typename T2, int dummy_ = 0
- >
-struct bind2;
-
-template<
- typename F, typename T1, typename T2, typename T3, int dummy_ = 0
- >
-struct bind3;
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , int dummy_ = 0
- >
-struct bind4;
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5, int dummy_ = 0
- >
-struct bind5;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
- : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
- typedef T type;
-};
-
-template<
- template< typename P1 > class F
- , typename Tag = void_
- >
-struct quote1
-{
- template< typename U1 > struct apply
-
- : quote_impl<
- F<U1>
- , aux::has_type< F<U1> >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2 > class F
- , typename Tag = void_
- >
-struct quote2
-{
- template< typename U1, typename U2 > struct apply
-
- : quote_impl<
- F< U1,U2 >
- , aux::has_type< F< U1,U2 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename Tag = void_
- >
-struct quote3
-{
- template< typename U1, typename U2, typename U3 > struct apply
-
- : quote_impl<
- F< U1,U2,U3 >
- , aux::has_type< F< U1,U2,U3 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename Tag = void_
- >
-struct quote4
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4 >
- , aux::has_type< F< U1,U2,U3,U4 > >::value
- >
-
- {
- };
-};
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- class F
- , typename Tag = void_
- >
-struct quote5
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4,U5 >
- , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
- >
-
- {
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_iter_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- : aux::unpack_args_impl< size<Args>::value,F, Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
-
- , typename has_apply_ = typename aux::has_apply<F>::type
-
- >
-struct apply_wrap0
-
- : F::template apply< >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
- : F::apply
-{
-};
-
-template<
- typename F, typename T1
-
- >
-struct apply_wrap1
-
- : F::template apply<T1>
-{
-};
-
-template<
- typename F, typename T1, typename T2
-
- >
-struct apply_wrap2
-
- : F::template apply< T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
-
- >
-struct apply_wrap3
-
- : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
-
- >
-struct apply_wrap4
-
- : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
-
- >
-struct apply_wrap5
-
- : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-template<
- template< typename T1, typename T2, typename T3 > class F, typename Tag
- >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< eval_if,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename eval_if<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-template<
- template< typename T1, typename T2, typename T3 > class F, typename Tag
- >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< eval_if,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename eval_if<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind_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 bind;
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
- : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
- typedef T type;
-};
-
-template<
- template< typename P1 > class F
- , typename Tag = void_
- >
-struct quote1
-{
- template< typename U1 > struct apply
-
- : quote_impl<
- F<U1>
- , aux::has_type< F<U1> >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2 > class F
- , typename Tag = void_
- >
-struct quote2
-{
- template< typename U1, typename U2 > struct apply
-
- : quote_impl<
- F< U1,U2 >
- , aux::has_type< F< U1,U2 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename Tag = void_
- >
-struct quote3
-{
- template< typename U1, typename U2, typename U3 > struct apply
-
- : quote_impl<
- F< U1,U2,U3 >
- , aux::has_type< F< U1,U2,U3 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename Tag = void_
- >
-struct quote4
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4 >
- , aux::has_type< F< U1,U2,U3,U4 > >::value
- >
-
- {
- };
-};
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- class F
- , typename Tag = void_
- >
-struct quote5
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4,U5 >
- , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
- >
-
- {
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_iter_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< int N > struct arity_tag
-{
- typedef char (&type)[N + 1];
-};
-
-template<
- int C1, int C2, int C3, int C4, int C5, int C6
- >
-struct max_arity
-{
- BOOST_STATIC_CONSTANT(int, value =
- ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) )
-
- );
-};
-
-arity_tag<0>::type arity_helper(...);
-
-template<
- template< typename P1 > class F
- , typename T1
- >
-typename arity_tag<1>::type
-arity_helper(type_wrapper< F<T1> >, arity_tag<1>);
-
-template<
- template< typename P1, typename P2 > class F
- , typename T1, typename T2
- >
-typename arity_tag<2>::type
-arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>);
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename T1, typename T2, typename T3
- >
-typename arity_tag<3>::type
-arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>);
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename T1, typename T2, typename T3, typename T4
- >
-typename arity_tag<4>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>);
-
-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 arity_tag<5>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>);
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6
- >
- class F
- , typename T1, typename T2, typename T3, typename T4, typename T5
- , typename T6
- >
-typename arity_tag<6>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>);
-template< typename F, int N >
-struct template_arity_impl
-{
- BOOST_STATIC_CONSTANT(int, value =
- sizeof(arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1
- );
-};
-
-template< typename F >
-struct template_arity
-{
- BOOST_STATIC_CONSTANT(int, value = (
- max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value
-
- ));
-
- typedef mpl::int_<value> type;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- : aux::unpack_args_impl< size<Args>::value,F, Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int type;
- };
-
-};
-
-template<>
-struct advance_backward<1>
-{
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef typename prior<iter0>::type iter1;
- typedef iter1 type;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int type;
- };
-
-};
-
-template<>
-struct advance_forward<1>
-{
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef typename next<iter0>::type iter1;
- typedef iter1 type;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct apply<int>
- {
- typedef int 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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : false_
- {
- };
-};
-
-template<> struct and_impl<true>
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : and_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< T2,T3,T4,true_ >
- {
- };
-};
-
-template<>
-struct and_impl<true>
- ::result_< 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
- >::template result_< T2,T3,T4,T5 >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , and_
- , ( T1, T2, T3, T4, T5)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , 5
- , and_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
- >
-struct apply0
-
-{
- typedef typename apply_wrap0<
- typename lambda<F>::type
-
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 1
- , apply0
- , (F )
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply0<int>
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1
- >
-struct apply1
-
-{
- typedef typename apply_wrap1<
- typename lambda<F>::type
- , T1
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 2
- , apply1
- , (F, T1)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply1< int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct apply2
-
-{
- typedef typename apply_wrap2<
- typename lambda<F>::type
- , T1, T2
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 3
- , apply2
- , (F, T1, T2)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply2< int,int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct apply3
-
-{
- typedef typename apply_wrap3<
- typename lambda<F>::type
- , T1, T2, T3
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 4
- , apply3
- , (F, T1, T2, T3)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply3< int,int,int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct apply4
-
-{
- typedef typename apply_wrap4<
- typename lambda<F>::type
- , T1, T2, T3, T4
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , apply4
- , (F, T1, T2, T3, T4)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply4< int,int,int,int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct apply5
-
-{
- typedef typename apply_wrap5<
- typename lambda<F>::type
- , T1, T2, T3, T4, T5
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 6
- , apply5
- , (F, T1, T2, T3, T4, T5)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply5< int,int,int,int,int,int >
-{
- typedef int type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename F>
-struct msvc_apply0
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
- template< typename P = int > struct apply
- {
- typedef int type;
- };
- };
-
- template< typename T = int > struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template apply<>
- {
- };
-
-};
-
-template<
- typename F
- >
-struct apply_wrap0
-{
- typedef typename msvc_apply0<F>::template result_<
-
- >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap0<int>
-{
- typedef int type;
-};
-
-template< typename F>
-struct msvc_apply1
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
- template< typename P1 > struct apply
- {
- typedef int type;
- };
- };
-
- template< typename T1 > struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template apply<T1>
- {
- };
-};
-
-template<
- typename F, typename T1
- >
-struct apply_wrap1
-{
- typedef typename msvc_apply1<F>::template result_<
- T1
- >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap1< int,int >
-{
- typedef int type;
-};
-
-template< typename F>
-struct msvc_apply2
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
- template< typename P1, typename P2 > struct apply
- {
- typedef int type;
- };
- };
-
- template< typename T1, typename T2 > struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template apply< T1,T2 >
- {
- };
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct apply_wrap2
-{
- typedef typename msvc_apply2<F>::template result_<
- T1, T2
- >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap2< int,int,int >
-{
- typedef int type;
-};
-
-template< typename F>
-struct msvc_apply3
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
- template< typename P1, typename P2, typename P3 > struct apply
- {
- typedef int type;
- };
- };
-
- template< typename T1, typename T2, typename T3 > struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template apply< T1,T2,T3 >
- {
- };
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct apply_wrap3
-{
- typedef typename msvc_apply3<F>::template result_<
- T1, T2, T3
- >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap3< int,int,int,int >
-{
- typedef int type;
-};
-
-template< typename F>
-struct msvc_apply4
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
- template<
- typename P1, typename P2, typename P3, typename P4
- >
- struct apply
- {
- typedef int type;
- };
- };
-
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template apply< T1,T2,T3,T4 >
- {
- };
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct apply_wrap4
-{
- typedef typename msvc_apply4<F>::template result_<
- T1, T2, T3, T4
- >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap4< int,int,int,int,int >
-{
- typedef int type;
-};
-
-template< typename F>
-struct msvc_apply5
-{
- template< bool > struct f_ : F {};
- template<> struct f_<true>
- {
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- struct apply
- {
- typedef int type;
- };
- };
-
- template<
- typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- : f_< aux::msvc_never_true<F>::value >
- ::template apply< T1,T2,T3,T4,T5 >
- {
- };
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct apply_wrap5
-{
- typedef typename msvc_apply5<F>::template result_<
- T1, T2, T3, T4, T5
- >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap5< int,int,int,int,int,int >
-{
- typedef int type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef typename apply_wrap5<
- T
- , U1, U2, U3, U4, U5
- >::type type;
- };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
- typename T, typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef typename apply_wrap5<
- T
- , U1, U2, U3, U4, U5
- >::type type;
- };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
- typename T, typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
- template< typename Arg > struct result_
- {
- typedef Arg next;
- typedef T type;
- };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
- template< typename Arg > struct result_
- {
- typedef typename next<Arg>::type next;
- typedef Arg type;
- };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
- : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct bitand_impl
- : if_c<
- ( tag1_ > 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<> struct bitand_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitand_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitand_2;
-
-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_
-
- : if_<
-
- is_na<N3>
- , bitand_2< N1,N2 >
- , bitand_<
- bitand_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitand_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitand_2
- : aux::msvc_eti_base< typename apply_wrap2<
- bitand_impl<
- typename bitand_tag<N1>::type
- , typename bitand_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 & n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitand_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct bitor_impl
- : if_c<
- ( tag1_ > 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<> struct bitor_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitor_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitor_2;
-
-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_
-
- : if_<
-
- is_na<N3>
- , bitor_2< N1,N2 >
- , bitor_<
- bitor_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitor_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitor_2
- : aux::msvc_eti_base< typename apply_wrap2<
- bitor_impl<
- typename bitor_tag<N1>::type
- , typename bitor_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 | n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitor_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct bitxor_impl
- : if_c<
- ( tag1_ > 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<> struct bitxor_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitxor_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitxor_2;
-
-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_
-
- : if_<
-
- is_na<N3>
- , bitxor_2< N1,N2 >
- , bitxor_<
- bitxor_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitxor_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitxor_2
- : aux::msvc_eti_base< typename apply_wrap2<
- bitxor_impl<
- typename bitxor_tag<N1>::type
- , typename bitxor_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitxor_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
- 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 result_
- {
- typedef vector0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct deque_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_deque_arg<T1>::value + is_deque_arg<T2>::value
- + is_deque_arg<T3>::value + is_deque_arg<T4>::value
- + is_deque_arg<T5>::value + is_deque_arg<T6>::value
- + is_deque_arg<T7>::value + is_deque_arg<T8>::value
- + is_deque_arg<T9>::value + is_deque_arg<T10>::value
- + is_deque_arg<T11>::value + is_deque_arg<T12>::value
- + is_deque_arg<T13>::value + is_deque_arg<T14>::value
- + is_deque_arg<T15>::value + is_deque_arg<T16>::value
- + is_deque_arg<T17>::value + is_deque_arg<T18>::value
- + is_deque_arg<T19>::value + is_deque_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::deque_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::deque_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::deque_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::deque_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct divides_impl
- : if_c<
- ( tag1_ > 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<> struct divides_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct divides_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct divides2;
-
-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
-
- : if_<
-
- is_na<N3>
- , divides2< N1,N2 >
- , divides<
- divides2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , divides
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct divides2
- : aux::msvc_eti_base< typename apply_wrap2<
- divides_impl<
- typename divides_tag<N1>::type
- , typename divides_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 / n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::divides_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct equal_to_impl
- : if_c<
- ( tag1_ > 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<> struct equal_to_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct equal_to_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- equal_to_impl<
- typename equal_to_tag<N1>::type
- , typename equal_to_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
- typedef state0 state;
- typedef iter0 iterator;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct fold_chunk<1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct fold_chunk<2>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct fold_chunk<3>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct fold_chunk<4>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template< int N >
-struct fold_chunk
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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_step;
-
-template<
- typename Last
- , typename State
- >
-struct fold_null_step
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same< First,Last >::type
- , fold_null_step< Last,State >
- , fold_step< First,Last,State,ForwardOp >
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct fold_step
-{
- typedef fold_chunk< -1 >::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State, typename deref<First>::type>::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct fold_impl
- : fold_chunk<N>
- ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct greater_impl
- : if_c<
- ( tag1_ > 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<> struct greater_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct greater_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- greater_impl<
- typename greater_tag<N1>::type
- , typename greater_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct greater_equal_impl
- : if_c<
- ( tag1_ > 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<> struct greater_equal_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct greater_equal_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- greater_equal_impl<
- typename greater_equal_tag<N1>::type
- , typename greater_equal_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1, T2
- {
- typedef Derived type_;
- };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1
- {
- typedef T1 type_;
- };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T2
- {
- typedef T2 type_;
- };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- {
- typedef T1 type_;
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct inherit2
- : aux::inherit2_impl<
- is_empty_base<T1>::value
- , is_empty_base<T2>::value
- >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
- typedef typename inherit2::type_ type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
- typedef state0 state;
- typedef iter0 iterator;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct iter_fold_chunk<1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct iter_fold_chunk<2>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct iter_fold_chunk<3>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<> struct iter_fold_chunk<4>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template< int N >
-struct iter_fold_chunk
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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_step;
-
-template<
- typename Last
- , typename State
- >
-struct iter_fold_null_step
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same< First,Last >::type
- , iter_fold_null_step< Last,State >
- , iter_fold_step< First,Last,State,ForwardOp >
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int >
- {
- typedef int state;
- typedef int iterator;
- };
-
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct iter_fold_step
-{
- typedef iter_fold_chunk< -1 >::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2< ForwardOp,State,First >::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct iter_fold_impl
- : iter_fold_chunk<N>
- ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct less_impl
- : if_c<
- ( tag1_ > 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<> struct less_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct less_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- less_impl<
- typename less_tag<N1>::type
- , typename less_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
- BOOST_MPL_AUX_VALUE_WKND(N1)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct less_equal_impl
- : if_c<
- ( tag1_ > 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<> struct less_equal_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct less_equal_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- less_equal_impl<
- typename less_equal_tag<N1>::type
- , typename less_equal_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
- 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 result_
- {
- typedef list0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
- 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 result_
- {
- typedef typename list1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
- 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 result_
- {
- typedef typename list2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
- 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 result_
- {
- typedef typename list3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
- 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 result_
- {
- typedef typename list4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
- 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 result_
- {
- typedef typename list5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
- 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 result_
- {
- typedef typename list6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
- 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 result_
- {
- typedef typename list7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
- 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 result_
- {
- typedef typename list8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
- 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 result_
- {
- typedef typename list9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
- 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 result_
- {
- typedef typename list10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
- 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 result_
- {
- typedef typename list11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
- 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 result_
- {
- typedef typename list12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
- 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 result_
- {
- typedef typename list13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
- 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 result_
- {
- typedef typename list14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
- 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 result_
- {
- typedef typename list15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
- 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 result_
- {
- typedef typename list16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
- 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 result_
- {
- typedef typename list17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
- 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 result_
- {
- typedef typename list18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
- 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 result_
- {
- typedef typename list19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct list_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_list_arg<T1>::value + is_list_arg<T2>::value
- + is_list_arg<T3>::value + is_list_arg<T4>::value
- + is_list_arg<T5>::value + is_list_arg<T6>::value
- + is_list_arg<T7>::value + is_list_arg<T8>::value
- + is_list_arg<T9>::value + is_list_arg<T10>::value
- + is_list_arg<T11>::value + is_list_arg<T12>::value
- + is_list_arg<T13>::value + is_list_arg<T14>::value
- + is_list_arg<T15>::value + is_list_arg<T16>::value
- + is_list_arg<T17>::value + is_list_arg<T18>::value
- + is_list_arg<T19>::value + is_list_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::list_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::list_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::list_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::list_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
- 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 result_
- {
- typedef typename list0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
- 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 result_
- {
- typedef typename list1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
- 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 result_
- {
- typedef typename list2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
- 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 result_
- {
- typedef typename list3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
- 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 result_
- {
- typedef typename list4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
- 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 result_
- {
- typedef typename list5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
- 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 result_
- {
- typedef typename list6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
- 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 result_
- {
- typedef typename list7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
- 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 result_
- {
- typedef typename list8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
- 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 result_
- {
- typedef typename list9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
- 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 result_
- {
- typedef typename list10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
- 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 result_
- {
- typedef typename list11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
- 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 result_
- {
- typedef typename list12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
- 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 result_
- {
- typedef typename list13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
- 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 result_
- {
- typedef typename list14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
- 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 result_
- {
- typedef typename list15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
- 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 result_
- {
- typedef typename list16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
- 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 result_
- {
- typedef typename list17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct list_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_list_c_arg<C1>::value + is_list_c_arg<C2>::value
- + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value
- + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value
- + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value
- + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value
- + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value
- + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value
- + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value
- + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value
- + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::list_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::list_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::list_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::list_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
- 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 result_
- {
- typedef map0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
- 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 result_
- {
- typedef typename map1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
- 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 result_
- {
- typedef typename map2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
- 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 result_
- {
- typedef typename map3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
- 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 result_
- {
- typedef typename map4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
- 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 result_
- {
- typedef typename map5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
- 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 result_
- {
- typedef typename map6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
- 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 result_
- {
- typedef typename map7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
- 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 result_
- {
- typedef typename map8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
- 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 result_
- {
- typedef typename map9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
- 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 result_
- {
- typedef typename map10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
- 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 result_
- {
- typedef typename map11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
- 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 result_
- {
- typedef typename map12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
- 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 result_
- {
- typedef typename map13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
- 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 result_
- {
- typedef typename map14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
- 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 result_
- {
- typedef typename map15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
- 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 result_
- {
- typedef typename map16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
- 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 result_
- {
- typedef typename map17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
- 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 result_
- {
- typedef typename map18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
- 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 result_
- {
- typedef typename map19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct map_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_map_arg<T1>::value + is_map_arg<T2>::value
- + is_map_arg<T3>::value + is_map_arg<T4>::value
- + is_map_arg<T5>::value + is_map_arg<T6>::value
- + is_map_arg<T7>::value + is_map_arg<T8>::value
- + is_map_arg<T9>::value + is_map_arg<T10>::value
- + is_map_arg<T11>::value + is_map_arg<T12>::value
- + is_map_arg<T13>::value + is_map_arg<T14>::value
- + is_map_arg<T15>::value + is_map_arg<T16>::value
- + is_map_arg<T17>::value + is_map_arg<T18>::value
- + is_map_arg<T19>::value + is_map_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::map_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::map_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::map_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::map_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct minus_impl
- : if_c<
- ( tag1_ > 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<> struct minus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct minus_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct minus2;
-
-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
-
- : if_<
-
- is_na<N3>
- , minus2< N1,N2 >
- , minus<
- minus2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , minus
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct minus2
- : aux::msvc_eti_base< typename apply_wrap2<
- minus_impl<
- typename minus_tag<N1>::type
- , typename minus_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 - n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::minus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct modulus_impl
- : if_c<
- ( tag1_ > 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<> struct modulus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct modulus_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- modulus_impl<
- typename modulus_tag<N1>::type
- , typename modulus_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 % n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::modulus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct not_equal_to_impl
- : if_c<
- ( tag1_ > 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<> struct not_equal_to_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct not_equal_to_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- not_equal_to_impl<
- typename not_equal_to_tag<N1>::type
- , typename not_equal_to_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : true_
- {
- };
-};
-
-template<> struct or_impl<false>
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : or_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< T2,T3,T4,false_ >
- {
- };
-};
-
-template<>
-struct or_impl<false>
- ::result_< 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
- >::template result_< T2,T3,T4,T5 >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , or_
- , ( T1, T2, T3, T4, T5)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , 5
- , or_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct plus_impl
- : if_c<
- ( tag1_ > 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<> struct plus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct plus_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct plus2;
-
-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
-
- : if_<
-
- is_na<N3>
- , plus2< N1,N2 >
- , plus<
- plus2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , plus
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct plus2
- : aux::msvc_eti_base< typename apply_wrap2<
- plus_impl<
- typename plus_tag<N1>::type
- , typename plus_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 + n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::plus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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;
- };
-
- /// ETI workaround
- template<> struct result_< int,int,int,int,int >
- {
- typedef int state;
- typedef int 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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
- 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 result_
- {
- typedef set0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
- 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 result_
- {
- typedef typename set1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
- 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 result_
- {
- typedef typename set2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
- 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 result_
- {
- typedef typename set3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
- 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 result_
- {
- typedef typename set4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
- 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 result_
- {
- typedef typename set5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
- 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 result_
- {
- typedef typename set6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
- 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 result_
- {
- typedef typename set7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
- 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 result_
- {
- typedef typename set8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
- 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 result_
- {
- typedef typename set9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
- 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 result_
- {
- typedef typename set10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
- 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 result_
- {
- typedef typename set11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
- 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 result_
- {
- typedef typename set12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
- 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 result_
- {
- typedef typename set13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
- 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 result_
- {
- typedef typename set14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
- 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 result_
- {
- typedef typename set15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
- 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 result_
- {
- typedef typename set16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
- 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 result_
- {
- typedef typename set17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
- 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 result_
- {
- typedef typename set18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
- 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 result_
- {
- typedef typename set19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct set_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_set_arg<T1>::value + is_set_arg<T2>::value
- + is_set_arg<T3>::value + is_set_arg<T4>::value
- + is_set_arg<T5>::value + is_set_arg<T6>::value
- + is_set_arg<T7>::value + is_set_arg<T8>::value
- + is_set_arg<T9>::value + is_set_arg<T10>::value
- + is_set_arg<T11>::value + is_set_arg<T12>::value
- + is_set_arg<T13>::value + is_set_arg<T14>::value
- + is_set_arg<T15>::value + is_set_arg<T16>::value
- + is_set_arg<T17>::value + is_set_arg<T18>::value
- + is_set_arg<T19>::value + is_set_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::set_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::set_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::set_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::set_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
- 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 result_
- {
- typedef typename set0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
- 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 result_
- {
- typedef typename set1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
- 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 result_
- {
- typedef typename set2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
- 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 result_
- {
- typedef typename set3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
- 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 result_
- {
- typedef typename set4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
- 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 result_
- {
- typedef typename set5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
- 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 result_
- {
- typedef typename set6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
- 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 result_
- {
- typedef typename set7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
- 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 result_
- {
- typedef typename set8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
- 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 result_
- {
- typedef typename set9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
- 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 result_
- {
- typedef typename set10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
- 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 result_
- {
- typedef typename set11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
- 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 result_
- {
- typedef typename set12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
- 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 result_
- {
- typedef typename set13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
- 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 result_
- {
- typedef typename set14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
- 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 result_
- {
- typedef typename set15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
- 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 result_
- {
- typedef typename set16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
- 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 result_
- {
- typedef typename set17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct set_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_set_c_arg<C1>::value + is_set_c_arg<C2>::value
- + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value
- + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value
- + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value
- + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value
- + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value
- + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value
- + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value
- + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value
- + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::set_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::set_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::set_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::set_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct shift_left_impl
- : if_c<
- ( tag1_ > 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<> struct shift_left_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct shift_left_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- shift_left_impl<
- typename shift_left_tag<N1>::type
- , typename shift_left_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n << s));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N, typename S > struct apply
- : aux::shift_left_wknd<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct shift_right_impl
- : if_c<
- ( tag1_ > 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<> struct shift_right_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct shift_right_impl< integral_c_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
- : aux::msvc_eti_base< typename apply_wrap2<
- shift_right_impl<
- typename shift_right_tag<N1>::type
- , typename shift_right_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n >> s));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N, typename S > struct apply
- : aux::shift_right_wknd<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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>
-{
-};
-
-template<>
-struct template_arity<int>
- : mpl::int_< -1 >
-{
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct times_impl
- : if_c<
- ( tag1_ > 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<> struct times_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct times_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct times2;
-
-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
-
- : if_<
-
- is_na<N3>
- , times2< N1,N2 >
- , times<
- times2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , times
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct times2
- : aux::msvc_eti_base< typename apply_wrap2<
- times_impl<
- typename times_tag<N1>::type
- , typename times_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 * n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::times_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
- template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
- template< typename F, typename Args > struct apply
- : apply0<
- F
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<1>
-{
- template< typename F, typename Args > struct apply
- : apply1<
- F
- , typename at_c< Args,0 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<2>
-{
- template< typename F, typename Args > struct apply
- : apply2<
- F
- , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<3>
-{
- template< typename F, typename Args > struct apply
- : apply3<
- F
- , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
- , typename at_c< Args,2 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<4>
-{
- template< typename F, typename Args > struct apply
- : 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<> struct unpack_args_impl<5>
-{
- template< typename F, typename Args > struct apply
- : 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
-
- : aux::unpack_args_impl< size<Args>::value >
- ::template apply< F,Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
- 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 result_
- {
- typedef vector0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct vector_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_vector_arg<T1>::value + is_vector_arg<T2>::value
- + is_vector_arg<T3>::value + is_vector_arg<T4>::value
- + is_vector_arg<T5>::value + is_vector_arg<T6>::value
- + is_vector_arg<T7>::value + is_vector_arg<T8>::value
- + is_vector_arg<T9>::value + is_vector_arg<T10>::value
- + is_vector_arg<T11>::value + is_vector_arg<T12>::value
- + is_vector_arg<T13>::value + is_vector_arg<T14>::value
- + is_vector_arg<T15>::value + is_vector_arg<T16>::value
- + is_vector_arg<T17>::value + is_vector_arg<T18>::value
- + is_vector_arg<T19>::value + is_vector_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::vector_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::vector_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::vector_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::vector_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
- 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 result_
- {
- typedef typename vector0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
- 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 result_
- {
- typedef typename vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct vector_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value
- + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value
- + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value
- + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value
- + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value
- + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value
- + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value
- + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value
- + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value
- + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::vector_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::vector_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::vector_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::vector_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : false_
- {
- };
-};
-
-template<> struct and_impl<true>
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : and_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< T2,T3,T4,true_ >
- {
- };
-
- template<> struct result_< 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
- >::template result_< T2,T3,T4,T5 >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , and_
- , ( T1, T2, T3, T4, T5)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , 5
- , and_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 )
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply0<int>
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1
- >
-struct apply1
-
- : apply_wrap1<
- typename lambda<F>::type
- , T1
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 2
- , apply1
- , (F, T1)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply1< int,int >
-{
- typedef int type;
-};
-
-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)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply2< int,int,int >
-{
- typedef int type;
-};
-
-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)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply3< int,int,int,int >
-{
- typedef int type;
-};
-
-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)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply4< int,int,int,int,int >
-{
- typedef int type;
-};
-
-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)
- )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply5< int,int,int,int,int,int >
-{
- typedef int type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
-
- , typename has_apply_ = typename aux::has_apply<F>::type
-
- >
-struct apply_wrap0
-
-{
- typedef typename F::template apply<
-
- >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap0<int>
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1
-
- >
-struct apply_wrap1
-
-{
- typedef typename F::template apply<
- T1
- >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap1< int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2
-
- >
-struct apply_wrap2
-
-{
- typedef typename F::template apply<
- T1, T2
- >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap2< int,int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
-
- >
-struct apply_wrap3
-
-{
- typedef typename F::template apply<
- T1, T2, T3
- >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap3< int,int,int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
-
- >
-struct apply_wrap4
-
-{
- typedef typename F::template apply<
- T1, T2, T3, T4
- >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap4< int,int,int,int,int >
-{
- typedef int type;
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
-
- >
-struct apply_wrap5
-
-{
- typedef typename F::template apply<
- T1, T2, T3, T4, T5
- >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap5< int,int,int,int,int,int >
-{
- typedef int type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef typename apply_wrap5<
- T
- , U1, U2, U3, U4, U5
- >::type type;
- };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
- typename T, typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef typename apply_wrap5<
- T
- , U1, U2, U3, U4, U5
- >::type type;
- };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
- typename T, typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
- template< typename Arg > struct result_
- {
- typedef Arg next;
- typedef T type;
- };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
- template< typename Arg > struct result_
- {
- typedef typename next<Arg>::type next;
- typedef Arg type;
- };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
- : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct bitand_impl
- : if_c<
- ( tag1_ > 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<> struct bitand_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct bitand_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitand_2;
-
-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_
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , bitand_2< N1,N2 >
- , bitand_<
- bitand_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitand_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitand_2
- : aux::msvc_eti_base< typename apply_wrap2<
- bitand_impl<
- typename bitand_tag<N1>::type
- , typename bitand_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 & n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitand_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct bitor_impl
- : if_c<
- ( tag1_ > 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<> struct bitor_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct bitor_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitor_2;
-
-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_
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , bitor_2< N1,N2 >
- , bitor_<
- bitor_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitor_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitor_2
- : aux::msvc_eti_base< typename apply_wrap2<
- bitor_impl<
- typename bitor_tag<N1>::type
- , typename bitor_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 | n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitor_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct bitxor_impl
- : if_c<
- ( tag1_ > 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<> struct bitxor_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct bitxor_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitxor_2;
-
-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_
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , bitxor_2< N1,N2 >
- , bitxor_<
- bitxor_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitxor_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitxor_2
- : aux::msvc_eti_base< typename apply_wrap2<
- bitxor_impl<
- typename bitxor_tag<N1>::type
- , typename bitxor_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitxor_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
- 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 result_
- {
- typedef vector0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct deque_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_deque_arg<T1>::value + is_deque_arg<T2>::value
- + is_deque_arg<T3>::value + is_deque_arg<T4>::value
- + is_deque_arg<T5>::value + is_deque_arg<T6>::value
- + is_deque_arg<T7>::value + is_deque_arg<T8>::value
- + is_deque_arg<T9>::value + is_deque_arg<T10>::value
- + is_deque_arg<T11>::value + is_deque_arg<T12>::value
- + is_deque_arg<T13>::value + is_deque_arg<T14>::value
- + is_deque_arg<T15>::value + is_deque_arg<T16>::value
- + is_deque_arg<T17>::value + is_deque_arg<T18>::value
- + is_deque_arg<T19>::value + is_deque_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::deque_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::deque_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::deque_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::deque_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct divides_impl
- : if_c<
- ( tag1_ > 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<> struct divides_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct divides_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct divides2;
-
-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
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , divides2< N1,N2 >
- , divides<
- divides2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , divides
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct divides2
- : aux::msvc_eti_base< typename apply_wrap2<
- divides_impl<
- typename divides_tag<N1>::type
- , typename divides_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 / n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::divides_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct equal_to_impl
- : if_c<
- ( tag1_ > 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<> struct equal_to_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct equal_to_impl< integral_c_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
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct equal_to
- : aux::msvc_eti_base< typename apply_wrap2<
- equal_to_impl<
- typename equal_to_tag<N1>::type
- , typename equal_to_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
- typedef state0 state;
- typedef iter0 iterator;
- };
-};
-
-template<> struct fold_chunk<1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct fold_chunk<2>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct fold_chunk<3>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct fold_chunk<4>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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 >
-struct fold_chunk
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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_step;
-
-template<
- typename Last
- , typename State
- >
-struct fold_null_step
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same< First,Last >::type
- , fold_null_step< Last,State >
- , fold_step< First,Last,State,ForwardOp >
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct fold_step
-{
- typedef fold_chunk< -1 >::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State, typename deref<First>::type>::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct fold_impl
- : fold_chunk<N>
- ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct greater_impl
- : if_c<
- ( tag1_ > 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<> struct greater_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct greater_tag
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct greater
- : aux::msvc_eti_base< typename apply_wrap2<
- greater_impl<
- typename greater_tag<N1>::type
- , typename greater_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct greater_equal_impl
- : if_c<
- ( tag1_ > 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<> struct greater_equal_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct greater_equal_impl< integral_c_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
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct greater_equal
- : aux::msvc_eti_base< typename apply_wrap2<
- greater_equal_impl<
- typename greater_equal_tag<N1>::type
- , typename greater_equal_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1, T2
- {
- typedef Derived type_;
- };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1
- {
- typedef T1 type_;
- };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T2
- {
- typedef T2 type_;
- };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- {
- typedef T1 type_;
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct inherit2
- : aux::inherit2_impl<
- is_empty_base<T1>::value
- , is_empty_base<T2>::value
- >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
- typedef typename inherit2::type_ type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
- typedef state0 state;
- typedef iter0 iterator;
- };
-};
-
-template<> struct iter_fold_chunk<1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct iter_fold_chunk<2>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct iter_fold_chunk<3>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct iter_fold_chunk<4>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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 >
-struct iter_fold_chunk
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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_step;
-
-template<
- typename Last
- , typename State
- >
-struct iter_fold_null_step
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same< First,Last >::type
- , iter_fold_null_step< Last,State >
- , iter_fold_step< First,Last,State,ForwardOp >
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct iter_fold_step
-{
- typedef iter_fold_chunk< -1 >::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2< ForwardOp,State,First >::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct iter_fold_impl
- : iter_fold_chunk<N>
- ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct less_impl
- : if_c<
- ( tag1_ > 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<> struct less_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct less_tag
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct less
- : aux::msvc_eti_base< typename apply_wrap2<
- less_impl<
- typename less_tag<N1>::type
- , typename less_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
- BOOST_MPL_AUX_VALUE_WKND(N1)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct less_equal_impl
- : if_c<
- ( tag1_ > 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<> struct less_equal_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct less_equal_impl< integral_c_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
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct less_equal
- : aux::msvc_eti_base< typename apply_wrap2<
- less_equal_impl<
- typename less_equal_tag<N1>::type
- , typename less_equal_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
- 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 result_
- {
- typedef list0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
- 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 result_
- {
- typedef typename list1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
- 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 result_
- {
- typedef typename list2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
- 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 result_
- {
- typedef typename list3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
- 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 result_
- {
- typedef typename list4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
- 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 result_
- {
- typedef typename list5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
- 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 result_
- {
- typedef typename list6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
- 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 result_
- {
- typedef typename list7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
- 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 result_
- {
- typedef typename list8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
- 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 result_
- {
- typedef typename list9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
- 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 result_
- {
- typedef typename list10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
- 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 result_
- {
- typedef typename list11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
- 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 result_
- {
- typedef typename list12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
- 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 result_
- {
- typedef typename list13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
- 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 result_
- {
- typedef typename list14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
- 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 result_
- {
- typedef typename list15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
- 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 result_
- {
- typedef typename list16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
- 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 result_
- {
- typedef typename list17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
- 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 result_
- {
- typedef typename list18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
- 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 result_
- {
- typedef typename list19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct list_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_list_arg<T1>::value + is_list_arg<T2>::value
- + is_list_arg<T3>::value + is_list_arg<T4>::value
- + is_list_arg<T5>::value + is_list_arg<T6>::value
- + is_list_arg<T7>::value + is_list_arg<T8>::value
- + is_list_arg<T9>::value + is_list_arg<T10>::value
- + is_list_arg<T11>::value + is_list_arg<T12>::value
- + is_list_arg<T13>::value + is_list_arg<T14>::value
- + is_list_arg<T15>::value + is_list_arg<T16>::value
- + is_list_arg<T17>::value + is_list_arg<T18>::value
- + is_list_arg<T19>::value + is_list_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::list_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::list_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::list_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::list_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
- 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 result_
- {
- typedef typename list0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
- 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 result_
- {
- typedef typename list1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
- 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 result_
- {
- typedef typename list2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
- 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 result_
- {
- typedef typename list3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
- 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 result_
- {
- typedef typename list4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
- 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 result_
- {
- typedef typename list5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
- 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 result_
- {
- typedef typename list6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
- 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 result_
- {
- typedef typename list7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
- 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 result_
- {
- typedef typename list8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
- 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 result_
- {
- typedef typename list9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
- 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 result_
- {
- typedef typename list10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
- 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 result_
- {
- typedef typename list11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
- 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 result_
- {
- typedef typename list12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
- 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 result_
- {
- typedef typename list13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
- 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 result_
- {
- typedef typename list14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
- 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 result_
- {
- typedef typename list15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
- 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 result_
- {
- typedef typename list16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
- 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 result_
- {
- typedef typename list17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct list_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_list_c_arg<C1>::value + is_list_c_arg<C2>::value
- + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value
- + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value
- + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value
- + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value
- + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value
- + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value
- + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value
- + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value
- + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::list_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::list_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::list_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::list_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
- 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 result_
- {
- typedef map0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
- 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 result_
- {
- typedef typename map1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
- 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 result_
- {
- typedef typename map2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
- 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 result_
- {
- typedef typename map3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
- 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 result_
- {
- typedef typename map4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
- 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 result_
- {
- typedef typename map5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
- 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 result_
- {
- typedef typename map6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
- 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 result_
- {
- typedef typename map7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
- 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 result_
- {
- typedef typename map8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
- 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 result_
- {
- typedef typename map9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
- 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 result_
- {
- typedef typename map10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
- 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 result_
- {
- typedef typename map11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
- 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 result_
- {
- typedef typename map12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
- 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 result_
- {
- typedef typename map13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
- 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 result_
- {
- typedef typename map14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
- 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 result_
- {
- typedef typename map15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
- 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 result_
- {
- typedef typename map16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
- 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 result_
- {
- typedef typename map17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
- 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 result_
- {
- typedef typename map18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
- 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 result_
- {
- typedef typename map19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct map_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_map_arg<T1>::value + is_map_arg<T2>::value
- + is_map_arg<T3>::value + is_map_arg<T4>::value
- + is_map_arg<T5>::value + is_map_arg<T6>::value
- + is_map_arg<T7>::value + is_map_arg<T8>::value
- + is_map_arg<T9>::value + is_map_arg<T10>::value
- + is_map_arg<T11>::value + is_map_arg<T12>::value
- + is_map_arg<T13>::value + is_map_arg<T14>::value
- + is_map_arg<T15>::value + is_map_arg<T16>::value
- + is_map_arg<T17>::value + is_map_arg<T18>::value
- + is_map_arg<T19>::value + is_map_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::map_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::map_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::map_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::map_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct minus_impl
- : if_c<
- ( tag1_ > 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<> struct minus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct minus_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct minus2;
-
-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
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , minus2< N1,N2 >
- , minus<
- minus2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , minus
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct minus2
- : aux::msvc_eti_base< typename apply_wrap2<
- minus_impl<
- typename minus_tag<N1>::type
- , typename minus_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 - n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::minus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct modulus_impl
- : if_c<
- ( tag1_ > 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<> struct modulus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct modulus_tag
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct modulus
- : aux::msvc_eti_base< typename apply_wrap2<
- modulus_impl<
- typename modulus_tag<N1>::type
- , typename modulus_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 % n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::modulus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct not_equal_to_impl
- : if_c<
- ( tag1_ > 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<> struct not_equal_to_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct not_equal_to_impl< integral_c_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
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct not_equal_to
- : aux::msvc_eti_base< typename apply_wrap2<
- not_equal_to_impl<
- typename not_equal_to_tag<N1>::type
- , typename not_equal_to_tag<N2>::type
- >
- , N1
- , N2
- >::type >::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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : true_
- {
- };
-};
-
-template<> struct or_impl<false>
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : or_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< T2,T3,T4,false_ >
- {
- };
-
- template<> struct result_< 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
- >::template result_< T2,T3,T4,T5 >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , or_
- , ( T1, T2, T3, T4, T5)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , 5
- , or_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct plus_impl
- : if_c<
- ( tag1_ > 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<> struct plus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct plus_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct plus2;
-
-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
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , plus2< N1,N2 >
- , plus<
- plus2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , plus
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct plus2
- : aux::msvc_eti_base< typename apply_wrap2<
- plus_impl<
- typename plus_tag<N1>::type
- , typename plus_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 + n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::plus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-template< bool > struct quote_impl
-{
- template< typename T > struct result_
- : T
- {
- };
-};
-
-template<> struct quote_impl<false>
-{
- template< typename T > struct result_
- {
- typedef T type;
- };
-};
-
-template<
- template< typename P1 > class F
- , typename Tag = void_
- >
-struct quote1
-{
- template< typename U1 > struct apply
-
- : quote_impl< aux::has_type< F<U1> >::value >
- ::template result_< F<U1> >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2 > class F
- , typename Tag = void_
- >
-struct quote2
-{
- template< typename U1, typename U2 > struct apply
-
- : quote_impl< aux::has_type< F< U1,U2 > >::value >
- ::template result_< F< U1,U2 > >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename Tag = void_
- >
-struct quote3
-{
- template< typename U1, typename U2, typename U3 > struct apply
-
- : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
- ::template result_< F< U1,U2,U3 > >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename Tag = void_
- >
-struct quote4
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- >
- struct apply
-
- : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
- ::template result_< F< U1,U2,U3,U4 > >
-
- {
- };
-};
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- class F
- , typename Tag = void_
- >
-struct quote5
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
- struct apply
-
- : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
- ::template result_< F< U1,U2,U3,U4,U5 > >
-
- {
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
- 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 result_
- {
- typedef set0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
- 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 result_
- {
- typedef typename set1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
- 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 result_
- {
- typedef typename set2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
- 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 result_
- {
- typedef typename set3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
- 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 result_
- {
- typedef typename set4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
- 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 result_
- {
- typedef typename set5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
- 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 result_
- {
- typedef typename set6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
- 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 result_
- {
- typedef typename set7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
- 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 result_
- {
- typedef typename set8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
- 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 result_
- {
- typedef typename set9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
- 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 result_
- {
- typedef typename set10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
- 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 result_
- {
- typedef typename set11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
- 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 result_
- {
- typedef typename set12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
- 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 result_
- {
- typedef typename set13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
- 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 result_
- {
- typedef typename set14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
- 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 result_
- {
- typedef typename set15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
- 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 result_
- {
- typedef typename set16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
- 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 result_
- {
- typedef typename set17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
- 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 result_
- {
- typedef typename set18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
- 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 result_
- {
- typedef typename set19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct set_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_set_arg<T1>::value + is_set_arg<T2>::value
- + is_set_arg<T3>::value + is_set_arg<T4>::value
- + is_set_arg<T5>::value + is_set_arg<T6>::value
- + is_set_arg<T7>::value + is_set_arg<T8>::value
- + is_set_arg<T9>::value + is_set_arg<T10>::value
- + is_set_arg<T11>::value + is_set_arg<T12>::value
- + is_set_arg<T13>::value + is_set_arg<T14>::value
- + is_set_arg<T15>::value + is_set_arg<T16>::value
- + is_set_arg<T17>::value + is_set_arg<T18>::value
- + is_set_arg<T19>::value + is_set_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::set_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::set_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::set_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::set_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
- 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 result_
- {
- typedef typename set0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
- 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 result_
- {
- typedef typename set1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
- 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 result_
- {
- typedef typename set2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
- 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 result_
- {
- typedef typename set3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
- 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 result_
- {
- typedef typename set4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
- 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 result_
- {
- typedef typename set5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
- 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 result_
- {
- typedef typename set6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
- 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 result_
- {
- typedef typename set7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
- 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 result_
- {
- typedef typename set8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
- 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 result_
- {
- typedef typename set9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
- 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 result_
- {
- typedef typename set10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
- 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 result_
- {
- typedef typename set11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
- 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 result_
- {
- typedef typename set12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
- 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 result_
- {
- typedef typename set13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
- 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 result_
- {
- typedef typename set14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
- 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 result_
- {
- typedef typename set15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
- 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 result_
- {
- typedef typename set16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
- 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 result_
- {
- typedef typename set17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct set_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_set_c_arg<C1>::value + is_set_c_arg<C2>::value
- + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value
- + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value
- + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value
- + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value
- + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value
- + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value
- + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value
- + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value
- + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::set_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::set_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::set_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::set_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct shift_left_impl
- : if_c<
- ( tag1_ > 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<> struct shift_left_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct shift_left_impl< integral_c_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
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct shift_left
- : aux::msvc_eti_base< typename apply_wrap2<
- shift_left_impl<
- typename shift_left_tag<N1>::type
- , typename shift_left_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n << s));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N, typename S > struct apply
- : aux::shift_left_wknd<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct shift_right_impl
- : if_c<
- ( tag1_ > 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<> struct shift_right_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct shift_right_impl< integral_c_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
- : tag< T,na >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct shift_right
- : aux::msvc_eti_base< typename apply_wrap2<
- shift_right_impl<
- typename shift_right_tag<N1>::type
- , typename shift_right_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n >> s));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N, typename S > struct apply
- : aux::shift_right_wknd<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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>
-{
-};
-
-template<>
-struct template_arity<int>
- : mpl::int_< -1 >
-{
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename Tag1
- , typename Tag2
-
- , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
- , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
- >
-struct times_impl
- : if_c<
- ( tag1_ > 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<> struct times_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template< typename T > struct times_tag
- : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct times2;
-
-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
-
- : aux::msvc_eti_base< typename if_<
-
- is_na<N3>
- , times2< N1,N2 >
- , times<
- times2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
- >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , times
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct times2
- : aux::msvc_eti_base< typename apply_wrap2<
- times_impl<
- typename times_tag<N1>::type
- , typename times_tag<N2>::type
- >
- , N1
- , N2
- >::type >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 * n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::times_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
- template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
- template< typename F, typename Args > struct apply
- : apply0<
- F
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<1>
-{
- template< typename F, typename Args > struct apply
- : apply1<
- F
- , typename at_c< Args,0 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<2>
-{
- template< typename F, typename Args > struct apply
- : apply2<
- F
- , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<3>
-{
- template< typename F, typename Args > struct apply
- : apply3<
- F
- , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
- , typename at_c< Args,2 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<4>
-{
- template< typename F, typename Args > struct apply
- : 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<> struct unpack_args_impl<5>
-{
- template< typename F, typename Args > struct apply
- : 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
-
- : aux::unpack_args_impl< size<Args>::value >
- ::template apply< F,Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
- 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 result_
- {
- typedef vector0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct vector_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_vector_arg<T1>::value + is_vector_arg<T2>::value
- + is_vector_arg<T3>::value + is_vector_arg<T4>::value
- + is_vector_arg<T5>::value + is_vector_arg<T6>::value
- + is_vector_arg<T7>::value + is_vector_arg<T8>::value
- + is_vector_arg<T9>::value + is_vector_arg<T10>::value
- + is_vector_arg<T11>::value + is_vector_arg<T12>::value
- + is_vector_arg<T13>::value + is_vector_arg<T14>::value
- + is_vector_arg<T15>::value + is_vector_arg<T16>::value
- + is_vector_arg<T17>::value + is_vector_arg<T18>::value
- + is_vector_arg<T19>::value + is_vector_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::vector_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::vector_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::vector_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::vector_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
- 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 result_
- {
- typedef typename vector0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
- 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 result_
- {
- typedef typename vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct vector_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value
- + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value
- + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value
- + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value
- + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value
- + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value
- + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value
- + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value
- + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value
- + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::vector_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::vector_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::vector_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::vector_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-template<
- template< typename T1, typename T2, typename T3 > class F, typename Tag
- >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< eval_if,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename eval_if<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-template<
- template< typename T1, typename T2, typename T3 > class F, typename Tag
- >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< eval_if,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename eval_if<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind_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 bind;
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
- : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
- typedef T type;
-};
-
-template<
- template< typename P1 > class F
- , typename Tag = void_
- >
-struct quote1
-{
- template< typename U1 > struct apply
-
- : quote_impl<
- F<U1>
- , aux::has_type< F<U1> >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2 > class F
- , typename Tag = void_
- >
-struct quote2
-{
- template< typename U1, typename U2 > struct apply
-
- : quote_impl<
- F< U1,U2 >
- , aux::has_type< F< U1,U2 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename Tag = void_
- >
-struct quote3
-{
- template< typename U1, typename U2, typename U3 > struct apply
-
- : quote_impl<
- F< U1,U2,U3 >
- , aux::has_type< F< U1,U2,U3 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename Tag = void_
- >
-struct quote4
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4 >
- , aux::has_type< F< U1,U2,U3,U4 > >::value
- >
-
- {
- };
-};
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- class F
- , typename Tag = void_
- >
-struct quote5
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4,U5 >
- , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
- >
-
- {
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_iter_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- : aux::unpack_args_impl< size<Args>::value,F, Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : false_
- {
- };
-};
-
-template<> struct and_impl<true>
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : and_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< T2,T3,T4,true_ >
- {
- };
-};
-
-template<>
-struct and_impl<true>
- ::result_< 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
- >::template result_< T2,T3,T4,T5 >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , and_
- , ( T1, T2, T3, T4, T5)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , 5
- , and_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 )
- )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<0>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef apply0<
- F
- > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1
- >
-struct apply1
-
- : apply_wrap1<
- typename lambda<F>::type
- , T1
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 2
- , apply1
- , (F, T1)
- )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<1>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef apply1<
- F, T1
- > type;
- };
-};
-
-} // namespace aux
-
-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)
- )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<2>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef apply2<
- F, T1, T2
- > type;
- };
-};
-
-} // namespace aux
-
-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)
- )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<3>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef apply3<
- F, T1, T2, T3
- > type;
- };
-};
-
-} // namespace aux
-
-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)
- )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<4>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef apply4<
- F, T1, T2, T3, T4
- > type;
- };
-};
-
-} // namespace aux
-
-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)
- )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<5>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef apply5<
- F, T1, T2, T3, T4, T5
- > type;
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_apply_arg
-{
- static bool const value = true;
-};
-
-template<>
-struct is_apply_arg<na>
-{
- static bool const value = false;
-};
-
-template<
- typename T1, typename T2, typename T3, typename T4, typename T5
- >
-struct apply_count_args
-{
- static int const value = is_apply_arg<T1>::value + is_apply_arg<T2>::value + is_apply_arg<T3>::value + is_apply_arg<T4>::value + is_apply_arg<T5>::value;
-
-};
-
-}
-
-template<
- typename F, typename T1 = na, typename T2 = na, typename T3 = na
- , typename T4 = na, typename T5 = na
- >
-struct apply
- : aux::apply_chooser<
- aux::apply_count_args< T1,T2,T3,T4,T5 >::value
- >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
-
- , typename has_apply_ = typename aux::has_apply<F>::type
-
- >
-struct apply_wrap0
-
- : F::template apply< >
-{
-};
-
-template<
- typename F, typename T1
-
- >
-struct apply_wrap1
-
- : F::template apply<T1>
-{
-};
-
-template<
- typename F, typename T1, typename T2
-
- >
-struct apply_wrap2
-
- : F::template apply< T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
-
- >
-struct apply_wrap3
-
- : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
-
- >
-struct apply_wrap4
-
- : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
-
- >
-struct apply_wrap5
-
- : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef typename apply_wrap5<
- T
- , U1, U2, U3, U4, U5
- >::type type;
- };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
- typename T, typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-namespace aux {
-
-template<>
-struct bind_chooser<0>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind0<F> type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-namespace aux {
-
-template<>
-struct bind_chooser<1>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind1< F,T1 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-namespace aux {
-
-template<>
-struct bind_chooser<2>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind2< F,T1,T2 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-namespace aux {
-
-template<>
-struct bind_chooser<3>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind3< F,T1,T2,T3 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-namespace aux {
-
-template<>
-struct bind_chooser<4>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind4< F,T1,T2,T3,T4 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-namespace aux {
-
-template<>
-struct bind_chooser<5>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind5< F,T1,T2,T3,T4,T5 > type;
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_bind_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_bind_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- typename T1, typename T2, typename T3, typename T4, typename T5
- >
-struct bind_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_bind_arg<T1>::value + is_bind_arg<T2>::value
- + is_bind_arg<T3>::value + is_bind_arg<T4>::value
- + is_bind_arg<T5>::value
- );
-
-};
-
-}
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : aux::bind_chooser<
- aux::bind_count_args< T1,T2,T3,T4,T5 >::value
- >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(
- 6
- , bind
- )
-
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
- 6
- , bind
- )
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template<
- typename T, typename U1, typename U2, typename U3
- , typename U4, typename U5
- >
- struct result_
- {
- typedef typename apply_wrap5<
- T
- , U1, U2, U3, U4, U5
- >::type type;
- };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
- typename T, typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
- template< typename Arg > struct result_
- {
- typedef Arg next;
- typedef T type;
- };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
- template< typename Arg > struct result_
- {
- typedef typename next<Arg>::type next;
- typedef Arg type;
- };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
- : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-namespace aux {
-
-template<>
-struct bind_chooser<0>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind0<F> type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-namespace aux {
-
-template<>
-struct bind_chooser<1>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind1< F,T1 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-namespace aux {
-
-template<>
-struct bind_chooser<2>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind2< F,T1,T2 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-namespace aux {
-
-template<>
-struct bind_chooser<3>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind3< F,T1,T2,T3 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-namespace aux {
-
-template<>
-struct bind_chooser<4>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind4< F,T1,T2,T3,T4 > type;
- };
-};
-
-} // namespace aux
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-namespace aux {
-
-template<>
-struct bind_chooser<5>
-{
- template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
- struct result_
- {
- typedef bind5< F,T1,T2,T3,T4,T5 > type;
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_bind_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_bind_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- typename T1, typename T2, typename T3, typename T4, typename T5
- >
-struct bind_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_bind_arg<T1>::value + is_bind_arg<T2>::value
- + is_bind_arg<T3>::value + is_bind_arg<T4>::value
- + is_bind_arg<T5>::value
- );
-
-};
-
-}
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : aux::bind_chooser<
- aux::bind_count_args< T1,T2,T3,T4,T5 >::value
- >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(
- 6
- , bind
- )
-
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
- 6
- , bind
- )
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind_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 bind;
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct bitand_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitand_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitand_2;
-
-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_
-
- : if_<
-
- is_na<N3>
- , bitand_2< N1,N2 >
- , bitand_<
- bitand_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitand_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitand_2
- : bitand_impl<
- typename bitand_tag<N1>::type
- , typename bitand_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct bitor_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitor_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitor_2;
-
-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_
-
- : if_<
-
- is_na<N3>
- , bitor_2< N1,N2 >
- , bitor_<
- bitor_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitor_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitor_2
- : bitor_impl<
- typename bitor_tag<N1>::type
- , typename bitor_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct bitxor_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct bitxor_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct bitxor_2;
-
-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_
-
- : if_<
-
- is_na<N3>
- , bitxor_2< N1,N2 >
- , bitxor_<
- bitxor_2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , bitxor_
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct bitxor_2
- : bitxor_impl<
- typename bitxor_tag<N1>::type
- , typename bitxor_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
- 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 result_
- {
- typedef vector0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct deque_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_deque_arg<T1>::value + is_deque_arg<T2>::value
- + is_deque_arg<T3>::value + is_deque_arg<T4>::value
- + is_deque_arg<T5>::value + is_deque_arg<T6>::value
- + is_deque_arg<T7>::value + is_deque_arg<T8>::value
- + is_deque_arg<T9>::value + is_deque_arg<T10>::value
- + is_deque_arg<T11>::value + is_deque_arg<T12>::value
- + is_deque_arg<T13>::value + is_deque_arg<T14>::value
- + is_deque_arg<T15>::value + is_deque_arg<T16>::value
- + is_deque_arg<T17>::value + is_deque_arg<T18>::value
- + is_deque_arg<T19>::value + is_deque_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::deque_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::deque_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::deque_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::deque_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct divides_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct divides_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct divides2;
-
-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
-
- : if_<
-
- is_na<N3>
- , divides2< N1,N2 >
- , divides<
- divides2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , divides
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct divides2
- : divides_impl<
- typename divides_tag<N1>::type
- , typename divides_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct equal_to_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct equal_to_impl< integral_c_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
- typedef state0 state;
- typedef iter0 iterator;
- };
-};
-
-template<> struct fold_chunk<1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct fold_chunk<2>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct fold_chunk<3>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct fold_chunk<4>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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 >
-struct fold_chunk
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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_step;
-
-template<
- typename Last
- , typename State
- >
-struct fold_null_step
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same< First,Last >::type
- , fold_null_step< Last,State >
- , fold_step< First,Last,State,ForwardOp >
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct fold_step
-{
- typedef fold_chunk< -1 >::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State, typename deref<First>::type>::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct fold_impl
- : fold_chunk<N>
- ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct greater_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct greater_impl< integral_c_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct greater_equal_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct greater_equal_impl< integral_c_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1, T2
- {
- typedef Derived type_;
- };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1
- {
- typedef T1 type_;
- };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T2
- {
- typedef T2 type_;
- };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- {
- typedef T1 type_;
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct inherit2
- : aux::inherit2_impl<
- is_empty_base<T1>::value
- , is_empty_base<T2>::value
- >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
- typedef typename inherit2::type_ type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
- typedef state0 state;
- typedef iter0 iterator;
- };
-};
-
-template<> struct iter_fold_chunk<1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct iter_fold_chunk<2>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct iter_fold_chunk<3>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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<> struct iter_fold_chunk<4>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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 >
-struct iter_fold_chunk
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- 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_step;
-
-template<
- typename Last
- , typename State
- >
-struct iter_fold_null_step
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same< First,Last >::type
- , iter_fold_null_step< Last,State >
- , iter_fold_step< First,Last,State,ForwardOp >
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct iter_fold_step
-{
- typedef iter_fold_chunk< -1 >::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2< ForwardOp,State,First >::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct iter_fold_impl
- : iter_fold_chunk<N>
- ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct less_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct less_impl< integral_c_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct less_equal_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct less_equal_impl< integral_c_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
- 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 result_
- {
- typedef list0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
- 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 result_
- {
- typedef typename list1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
- 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 result_
- {
- typedef typename list2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
- 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 result_
- {
- typedef typename list3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
- 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 result_
- {
- typedef typename list4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
- 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 result_
- {
- typedef typename list5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
- 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 result_
- {
- typedef typename list6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
- 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 result_
- {
- typedef typename list7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
- 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 result_
- {
- typedef typename list8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
- 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 result_
- {
- typedef typename list9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
- 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 result_
- {
- typedef typename list10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
- 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 result_
- {
- typedef typename list11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
- 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 result_
- {
- typedef typename list12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
- 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 result_
- {
- typedef typename list13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
- 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 result_
- {
- typedef typename list14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
- 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 result_
- {
- typedef typename list15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
- 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 result_
- {
- typedef typename list16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
- 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 result_
- {
- typedef typename list17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
- 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 result_
- {
- typedef typename list18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
- 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 result_
- {
- typedef typename list19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct list_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_list_arg<T1>::value + is_list_arg<T2>::value
- + is_list_arg<T3>::value + is_list_arg<T4>::value
- + is_list_arg<T5>::value + is_list_arg<T6>::value
- + is_list_arg<T7>::value + is_list_arg<T8>::value
- + is_list_arg<T9>::value + is_list_arg<T10>::value
- + is_list_arg<T11>::value + is_list_arg<T12>::value
- + is_list_arg<T13>::value + is_list_arg<T14>::value
- + is_list_arg<T15>::value + is_list_arg<T16>::value
- + is_list_arg<T17>::value + is_list_arg<T18>::value
- + is_list_arg<T19>::value + is_list_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::list_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::list_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::list_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::list_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
- 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 result_
- {
- typedef typename list0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
- 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 result_
- {
- typedef typename list1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
- 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 result_
- {
- typedef typename list2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
- 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 result_
- {
- typedef typename list3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
- 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 result_
- {
- typedef typename list4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
- 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 result_
- {
- typedef typename list5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
- 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 result_
- {
- typedef typename list6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
- 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 result_
- {
- typedef typename list7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
- 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 result_
- {
- typedef typename list8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
- 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 result_
- {
- typedef typename list9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
- 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 result_
- {
- typedef typename list10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
- 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 result_
- {
- typedef typename list11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
- 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 result_
- {
- typedef typename list12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
- 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 result_
- {
- typedef typename list13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
- 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 result_
- {
- typedef typename list14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
- 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 result_
- {
- typedef typename list15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
- 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 result_
- {
- typedef typename list16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
- 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 result_
- {
- typedef typename list17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct list_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_list_c_arg<C1>::value + is_list_c_arg<C2>::value
- + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value
- + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value
- + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value
- + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value
- + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value
- + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value
- + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value
- + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value
- + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::list_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::list_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::list_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::list_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
- 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 result_
- {
- typedef map0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
- 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 result_
- {
- typedef typename map1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
- 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 result_
- {
- typedef typename map2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
- 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 result_
- {
- typedef typename map3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
- 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 result_
- {
- typedef typename map4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
- 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 result_
- {
- typedef typename map5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
- 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 result_
- {
- typedef typename map6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
- 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 result_
- {
- typedef typename map7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
- 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 result_
- {
- typedef typename map8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
- 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 result_
- {
- typedef typename map9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
- 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 result_
- {
- typedef typename map10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
- 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 result_
- {
- typedef typename map11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
- 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 result_
- {
- typedef typename map12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
- 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 result_
- {
- typedef typename map13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
- 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 result_
- {
- typedef typename map14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
- 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 result_
- {
- typedef typename map15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
- 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 result_
- {
- typedef typename map16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
- 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 result_
- {
- typedef typename map17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
- 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 result_
- {
- typedef typename map18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
- 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 result_
- {
- typedef typename map19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct map_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_map_arg<T1>::value + is_map_arg<T2>::value
- + is_map_arg<T3>::value + is_map_arg<T4>::value
- + is_map_arg<T5>::value + is_map_arg<T6>::value
- + is_map_arg<T7>::value + is_map_arg<T8>::value
- + is_map_arg<T9>::value + is_map_arg<T10>::value
- + is_map_arg<T11>::value + is_map_arg<T12>::value
- + is_map_arg<T13>::value + is_map_arg<T14>::value
- + is_map_arg<T15>::value + is_map_arg<T16>::value
- + is_map_arg<T17>::value + is_map_arg<T18>::value
- + is_map_arg<T19>::value + is_map_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::map_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::map_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::map_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::map_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct minus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct minus_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct minus2;
-
-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
-
- : if_<
-
- is_na<N3>
- , minus2< N1,N2 >
- , minus<
- minus2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , minus
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct minus2
- : minus_impl<
- typename minus_tag<N1>::type
- , typename minus_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct modulus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct modulus_impl< integral_c_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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct not_equal_to_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct not_equal_to_impl< integral_c_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : true_
- {
- };
-};
-
-template<> struct or_impl<false>
-{
- template<
- typename T1, typename T2, typename T3, typename T4
- >
- struct result_
- : or_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< T2,T3,T4,false_ >
- {
- };
-};
-
-template<>
-struct or_impl<false>
- ::result_< 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
- >::template result_< T2,T3,T4,T5 >
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , or_
- , ( T1, T2, T3, T4, T5)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
- 2
- , 5
- , or_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct plus_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct plus_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct plus2;
-
-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
-
- : if_<
-
- is_na<N3>
- , plus2< N1,N2 >
- , plus<
- plus2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , plus
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct plus2
- : plus_impl<
- typename plus_tag<N1>::type
- , typename plus_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-template< bool > struct quote_impl
-{
- template< typename T > struct result_
- : T
- {
- };
-};
-
-template<> struct quote_impl<false>
-{
- template< typename T > struct result_
- {
- typedef T type;
- };
-};
-
-template<
- template< typename P1 > class F
- , typename Tag = void_
- >
-struct quote1
-{
- template< typename U1 > struct apply
-
- : quote_impl< aux::has_type< F<U1> >::value >
- ::template result_< F<U1> >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2 > class F
- , typename Tag = void_
- >
-struct quote2
-{
- template< typename U1, typename U2 > struct apply
-
- : quote_impl< aux::has_type< F< U1,U2 > >::value >
- ::template result_< F< U1,U2 > >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename Tag = void_
- >
-struct quote3
-{
- template< typename U1, typename U2, typename U3 > struct apply
-
- : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
- ::template result_< F< U1,U2,U3 > >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename Tag = void_
- >
-struct quote4
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- >
- struct apply
-
- : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
- ::template result_< F< U1,U2,U3,U4 > >
-
- {
- };
-};
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- class F
- , typename Tag = void_
- >
-struct quote5
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
- struct apply
-
- : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
- ::template result_< F< U1,U2,U3,U4,U5 > >
-
- {
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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 >
-{
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
- 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 result_
- {
- typedef set0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
- 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 result_
- {
- typedef typename set1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
- 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 result_
- {
- typedef typename set2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
- 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 result_
- {
- typedef typename set3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
- 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 result_
- {
- typedef typename set4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
- 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 result_
- {
- typedef typename set5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
- 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 result_
- {
- typedef typename set6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
- 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 result_
- {
- typedef typename set7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
- 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 result_
- {
- typedef typename set8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
- 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 result_
- {
- typedef typename set9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
- 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 result_
- {
- typedef typename set10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
- 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 result_
- {
- typedef typename set11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
- 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 result_
- {
- typedef typename set12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
- 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 result_
- {
- typedef typename set13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
- 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 result_
- {
- typedef typename set14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
- 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 result_
- {
- typedef typename set15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
- 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 result_
- {
- typedef typename set16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
- 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 result_
- {
- typedef typename set17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
- 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 result_
- {
- typedef typename set18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
- 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 result_
- {
- typedef typename set19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct set_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_set_arg<T1>::value + is_set_arg<T2>::value
- + is_set_arg<T3>::value + is_set_arg<T4>::value
- + is_set_arg<T5>::value + is_set_arg<T6>::value
- + is_set_arg<T7>::value + is_set_arg<T8>::value
- + is_set_arg<T9>::value + is_set_arg<T10>::value
- + is_set_arg<T11>::value + is_set_arg<T12>::value
- + is_set_arg<T13>::value + is_set_arg<T14>::value
- + is_set_arg<T15>::value + is_set_arg<T16>::value
- + is_set_arg<T17>::value + is_set_arg<T18>::value
- + is_set_arg<T19>::value + is_set_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::set_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::set_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::set_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::set_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
- 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 result_
- {
- typedef typename set0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
- 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 result_
- {
- typedef typename set1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
- 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 result_
- {
- typedef typename set2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
- 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 result_
- {
- typedef typename set3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
- 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 result_
- {
- typedef typename set4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
- 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 result_
- {
- typedef typename set5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
- 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 result_
- {
- typedef typename set6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
- 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 result_
- {
- typedef typename set7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
- 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 result_
- {
- typedef typename set8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
- 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 result_
- {
- typedef typename set9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
- 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 result_
- {
- typedef typename set10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
- 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 result_
- {
- typedef typename set11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
- 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 result_
- {
- typedef typename set12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
- 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 result_
- {
- typedef typename set13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
- 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 result_
- {
- typedef typename set14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
- 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 result_
- {
- typedef typename set15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
- 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 result_
- {
- typedef typename set16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
- 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 result_
- {
- typedef typename set17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct set_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_set_c_arg<C1>::value + is_set_c_arg<C2>::value
- + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value
- + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value
- + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value
- + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value
- + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value
- + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value
- + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value
- + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value
- + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::set_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::set_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::set_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::set_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct shift_left_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct shift_left_impl< integral_c_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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct shift_right_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct shift_right_impl< integral_c_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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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>
-{
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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<> struct times_impl< na,integral_c_tag >
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct times_impl< integral_c_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;
-};
-
-/// forward declaration
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct times2;
-
-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
-
- : if_<
-
- is_na<N3>
- , times2< N1,N2 >
- , times<
- times2< N1,N2 >
- , N3, N4, N5
- >
- >::type
-
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 5
- , times
- , ( N1, N2, N3, N4, N5 )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct times2
- : times_impl<
- typename times_tag<N1>::type
- , typename times_tag<N2>::type
- >::template apply< N1,N2 >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
- template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
- template< typename F, typename Args > struct apply
- : apply0<
- F
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<1>
-{
- template< typename F, typename Args > struct apply
- : apply1<
- F
- , typename at_c< Args,0 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<2>
-{
- template< typename F, typename Args > struct apply
- : apply2<
- F
- , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<3>
-{
- template< typename F, typename Args > struct apply
- : apply3<
- F
- , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
- , typename at_c< Args,2 >::type
- >
- {
- };
-};
-
-template<> struct unpack_args_impl<4>
-{
- template< typename F, typename Args > struct apply
- : 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<> struct unpack_args_impl<5>
-{
- template< typename F, typename Args > struct apply
- : 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
-
- : aux::unpack_args_impl< size<Args>::value >
- ::template apply< F,Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
- 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 result_
- {
- typedef vector0<
-
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1<
- T0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2<
- T0, T1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3<
- T0, T1, T2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4<
- T0, T1, T2, T3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5<
- T0, T1, T2, T3, T4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6<
- T0, T1, T2, T3, T4, T5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7<
- T0, T1, T2, T3, T4, T5, T6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8<
- T0, T1, T2, T3, T4, T5, T6, T7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9<
- T0, T1, T2, T3, T4, T5, T6, T7, T8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
- 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 result_
- {
- 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;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, typename T20
- >
-struct vector_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_vector_arg<T1>::value + is_vector_arg<T2>::value
- + is_vector_arg<T3>::value + is_vector_arg<T4>::value
- + is_vector_arg<T5>::value + is_vector_arg<T6>::value
- + is_vector_arg<T7>::value + is_vector_arg<T8>::value
- + is_vector_arg<T9>::value + is_vector_arg<T10>::value
- + is_vector_arg<T11>::value + is_vector_arg<T12>::value
- + is_vector_arg<T13>::value + is_vector_arg<T14>::value
- + is_vector_arg<T15>::value + is_vector_arg<T16>::value
- + is_vector_arg<T17>::value + is_vector_arg<T18>::value
- + is_vector_arg<T19>::value + is_vector_arg<T20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::vector_count_args<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- > arg_num_;
-
- typedef typename aux::vector_chooser< arg_num_::value >
- ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::vector_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type
-{
- typedef typename aux::vector_impl<
- T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
- 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 result_
- {
- typedef typename vector0_c<
- T
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
- 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 result_
- {
- typedef typename vector1_c<
- T, C0
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
- 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 result_
- {
- typedef typename vector2_c<
- T, C0, C1
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
- 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 result_
- {
- typedef typename vector3_c<
- T, C0, C1, C2
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
- 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 result_
- {
- typedef typename vector4_c<
- T, C0, C1, C2, C3
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
- 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 result_
- {
- typedef typename vector5_c<
- T, C0, C1, C2, C3, C4
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
- 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 result_
- {
- typedef typename vector6_c<
- T, C0, C1, C2, C3, C4, C5
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
- 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 result_
- {
- typedef typename vector7_c<
- T, C0, C1, C2, C3, C4, C5, C6
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
- 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 result_
- {
- typedef typename vector8_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
- 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 result_
- {
- typedef typename vector9_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
- 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 result_
- {
- typedef typename vector10_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
- 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 result_
- {
- typedef typename vector11_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
- 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 result_
- {
- typedef typename vector12_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
- 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 result_
- {
- typedef typename vector13_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
- 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 result_
- {
- typedef typename vector14_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
- 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 result_
- {
- typedef typename vector15_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
- 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 result_
- {
- typedef typename vector16_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
- 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 result_
- {
- typedef typename vector17_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
- 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 result_
- {
- typedef typename vector18_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
- 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 result_
- {
- typedef typename vector19_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
- 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 result_
- {
- typedef typename vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-
- };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<
- 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, long C20
- >
-struct vector_c_count_args
-{
- BOOST_STATIC_CONSTANT(int, value =
- is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value
- + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value
- + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value
- + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value
- + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value
- + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value
- + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value
- + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value
- + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value
- + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
- );
-
-};
-
-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_impl
-{
- typedef aux::vector_c_count_args<
- C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- > arg_num_;
-
- typedef typename aux::vector_c_chooser< arg_num_::value >
- ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-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
- : aux::vector_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type
-{
- typedef typename aux::vector_c_impl<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
- >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
-
- , typename has_apply_ = typename aux::has_apply<F>::type
-
- >
-struct apply_wrap0
-
- : F::template apply< >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
- : F::apply
-{
-};
-
-template<
- typename F, typename T1
-
- >
-struct apply_wrap1
-
- : F::template apply<T1>
-{
-};
-
-template<
- typename F, typename T1, typename T2
-
- >
-struct apply_wrap2
-
- : F::template apply< T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
-
- >
-struct apply_wrap3
-
- : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
-
- >
-struct apply_wrap4
-
- : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
-
- >
-struct apply_wrap5
-
- : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind_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 bind;
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 & n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitand_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 | n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitor_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::bitxor_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 / n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::divides_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
- BOOST_MPL_AUX_VALUE_WKND(N1)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 - n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::minus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 % n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::modulus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
- BOOST_MPL_AUX_VALUE_WKND(N2)::value )
- );
- typedef bool_<value> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 + n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::plus_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_iter_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n << s));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N, typename S > struct apply
- : aux::shift_left_wknd<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n >> s));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N, typename S > struct apply
- : aux::shift_right_wknd<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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>
-{
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = (n1 * n2));
- typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
- template< typename N1, typename N2 > struct apply
- : aux::times_wknd<
- typename aux::largest_int<
- typename N1::value_type
- , typename N2::value_type
- >::type
- , N1::value
- , N2::value
- >::type
-
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- : aux::unpack_args_impl< size<Args>::value,F, Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
- };
-};
-
-}}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_NA_SPEC2(
- 2
- , 5
- , and_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
- >
-struct apply0
-
- : apply_wrap0<
- typename lambda<F>::type
-
- >
-{
-};
-
-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
- >
-{
-};
-
-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
- >
-{
-};
-
-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
- >
-{
-};
-
-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
- >
-{
-};
-
-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
- >
-{
-};
-
-/// 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 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename F
-
- , typename has_apply_ = typename aux::has_apply<F>::type
-
- >
-struct apply_wrap0
-
- : F::template apply< >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
- : F::apply
-{
-};
-
-template<
- typename F, typename T1
-
- >
-struct apply_wrap1
-
- : F::template apply<T1>
-{
-};
-
-template<
- typename F, typename T1, typename T2
-
- >
-struct apply_wrap2
-
- : F::template apply< T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
-
- >
-struct apply_wrap3
-
- : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
-
- >
-struct apply_wrap4
-
- : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
-
- >
-struct apply_wrap5
-
- : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-template<
- template< typename T1, typename T2, typename T3 > class F, typename Tag
- >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< eval_if,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename eval_if<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-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< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
- typedef bind< F,T1,T2,T3,T4,T5 > f_;
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
- typename F
- >
-struct bind0
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,na,na,na,na,na >
- : bind0<F>
-{
-};
-
-template<
- typename F, typename T1
- >
-struct bind1
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,na,na,na,na >
- : bind1< F,T1 >
-{
-};
-
-template<
- typename F, typename T1, typename T2
- >
-struct bind2
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,na,na,na >
- : bind2< F,T1,T2 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3
- >
-struct bind3
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,na,na >
- : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- >
-struct bind4
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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
- >
-struct bind< F,T1,T2,T3,T4,na >
- : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind5
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- 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)
-
-/// primary template (not a specialization!)
-
-template<
- typename F, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct bind
- : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< if_,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename if_<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-template<
- template< typename T1, typename T2, typename T3 > class F, typename Tag
- >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
- typename Tag, typename T1, typename T2, typename T3
- >
-struct bind3<
- quote3< eval_if,Tag >
- , T1, T2, T3
- >
-{
- template<
- typename U1 = na, typename U2 = na, typename U3 = na
- , typename U4 = na, typename U5 = na
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
- 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 typename eval_if<
- typename t1::type
- , t2, t3
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/bind_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 bind;
-
-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;
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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
-
- >
-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 >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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
-
- >
-{
- 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 >
-{
- 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
-
- >
-{
- typedef false_ is_le;
- typedef bind< F,T1,T2,T3,T4,T5 > result_;
- typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
- typename F, typename Tag1, typename Tag2
- >
-struct lambda<
- lambda< F,Tag1 >
- , Tag2
- >
-{
- typedef lambda< F,Tag2 > l1;
- typedef lambda< Tag1,Tag2 > l2;
- typedef typename l1::is_le is_le;
- typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
- typedef typename le_result_::result_ result_;
- typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-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_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_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_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 = empty_base, typename T2 = empty_base
- , typename T3 = empty_base, typename T4 = empty_base
- , typename T5 = empty_base
-
- >
- 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)
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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_NA_SPEC2(1, 3, lambda)
-
-template<
- typename T
- >
-struct is_lambda_expression
- : lambda<T>::is_le
-{
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_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 ) >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_NA_SPEC2(
- 2
- , 5
- , or_
- )
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-}
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
- : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
- typedef T type;
-};
-
-template<
- template< typename P1 > class F
- , typename Tag = void_
- >
-struct quote1
-{
- template< typename U1 > struct apply
-
- : quote_impl<
- F<U1>
- , aux::has_type< F<U1> >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2 > class F
- , typename Tag = void_
- >
-struct quote2
-{
- template< typename U1, typename U2 > struct apply
-
- : quote_impl<
- F< U1,U2 >
- , aux::has_type< F< U1,U2 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3 > class F
- , typename Tag = void_
- >
-struct quote3
-{
- template< typename U1, typename U2, typename U3 > struct apply
-
- : quote_impl<
- F< U1,U2,U3 >
- , aux::has_type< F< U1,U2,U3 > >::value
- >
-
- {
- };
-};
-
-template<
- template< typename P1, typename P2, typename P3, typename P4 > class F
- , typename Tag = void_
- >
-struct quote4
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4 >
- , aux::has_type< F< U1,U2,U3,U4 > >::value
- >
-
- {
- };
-};
-
-template<
- template<
- typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
- class F
- , typename Tag = void_
- >
-struct quote5
-{
- template<
- typename U1, typename U2, typename U3, typename U4
- , typename U5
- >
- struct apply
-
- : quote_impl<
- F< U1,U2,U3,U4,U5 >
- , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
- >
-
- {
- };
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef First iter0;
- typedef State fwd_state0;
- typedef fwd_state0 bkwd_state0;
- typedef bkwd_state0 state;
- typedef iter0 iterator;
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
- 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<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
- 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
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl
-{
- 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_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
- typedef reverse_iter_fold_impl<
- -1
- , 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<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
- typedef State state;
- typedef Last iterator;
-};
-
-}}}
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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_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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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_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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
+++ /dev/null
-
-// 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 "boost/mpl/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>
-{
-};
-
-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
- )
- >
- {
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/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
-
- : aux::unpack_args_impl< size<Args>::value,F, Args >
-
- {
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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;
-};
-
-}}
-
+++ /dev/null
-
-// 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 "boost/mpl/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,C0 >
-{
- typedef typename vector1_c< 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,C0,C1 >
-{
- typedef typename vector2_c< T,C0,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,C0,C1,C2 >
-{
- typedef typename vector3_c< T,C0,C1,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,C0,C1,C2,C3 >
-{
- typedef typename vector4_c< T,C0,C1,C2,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,C0,C1,C2,C3,C4 >
-{
- typedef typename vector5_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 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,C0,C1,C2,C3,C4,C5 >
-{
- typedef typename vector6_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 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,C0,C1,C2,C3,C4,C5,C6 >
-{
- typedef typename vector7_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 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,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
- typedef typename vector8_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
- typedef typename vector9_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
- typedef typename vector10_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
- typedef typename vector11_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
- typedef typename vector12_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 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,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
- typedef typename vector13_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
- >
-{
- typedef typename vector14_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- >
-{
- typedef typename vector15_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15
- >
-{
- typedef typename vector16_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16
- >
-{
- typedef typename vector17_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17
- >
-{
- typedef typename vector18_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 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, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18
- >
-{
- typedef typename vector19_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 vector_c
- : vector20_c<
- T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
- , C15, C16, C17, C18, C19
- >
-{
- typedef typename vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/add.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/mpl/aux_/preprocessor/tuple.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_ADD(i,j) \
- BOOST_MPL_PP_ADD_DELAY(i,j) \
- /**/
-
-# define BOOST_MPL_PP_ADD_DELAY(i,j) \
- BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_ADD_##j) \
- /**/
-#else
-# define BOOST_MPL_PP_ADD(i,j) \
- BOOST_MPL_PP_ADD_DELAY(i,j) \
- /**/
-
-# define BOOST_MPL_PP_ADD_DELAY(i,j) \
- BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_ADD_##j \
- /**/
-#endif
-
-# define BOOST_MPL_PP_ADD_0 (0,1,2,3,4,5,6,7,8,9,10)
-# define BOOST_MPL_PP_ADD_1 (1,2,3,4,5,6,7,8,9,10,0)
-# define BOOST_MPL_PP_ADD_2 (2,3,4,5,6,7,8,9,10,0,0)
-# define BOOST_MPL_PP_ADD_3 (3,4,5,6,7,8,9,10,0,0,0)
-# define BOOST_MPL_PP_ADD_4 (4,5,6,7,8,9,10,0,0,0,0)
-# define BOOST_MPL_PP_ADD_5 (5,6,7,8,9,10,0,0,0,0,0)
-# define BOOST_MPL_PP_ADD_6 (6,7,8,9,10,0,0,0,0,0,0)
-# define BOOST_MPL_PP_ADD_7 (7,8,9,10,0,0,0,0,0,0,0)
-# define BOOST_MPL_PP_ADD_8 (8,9,10,0,0,0,0,0,0,0,0)
-# define BOOST_MPL_PP_ADD_9 (9,10,0,0,0,0,0,0,0,0,0)
-# define BOOST_MPL_PP_ADD_10 (10,0,0,0,0,0,0,0,0,0,0)
-
-#else
-
-# include <boost/preprocessor/arithmetic/add.hpp>
-
-# define BOOST_MPL_PP_ADD(i,j) \
- BOOST_PP_ADD(i,j) \
- /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/logical/and.hpp>
-#include <boost/preprocessor/identity.hpp>
-#include <boost/preprocessor/empty.hpp>
-
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): <nothing>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/mpl/aux_/preprocessor/filter_params.hpp>
-# include <boost/mpl/aux_/preprocessor/sub.hpp>
-
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
- BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \
- i \
- , BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \
- , param \
- , value_func \
- ) \
- /**/
-
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i, n, param, value_func) \
- BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,param,value_func) \
- /**/
-
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i, n, param, value_func) \
- BOOST_PP_COMMA_IF(BOOST_PP_AND(i,n)) \
- BOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,param,value_func) \
- /**/
-
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_0(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1 v(),p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v())
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6,p7)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9 v(),p1,p2,p3,p4,p5,p6,p7,p8)
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9)
-
-#else
-
-# include <boost/preprocessor/arithmetic/add.hpp>
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \
- , BOOST_PP_CAT( \
- BOOST_PP_TUPLE_ELEM(3, 1, op) \
- , BOOST_PP_ADD_D(1, i, BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, op))) \
- ) BOOST_PP_TUPLE_ELEM(3, 2, op)() \
- /**/
-
-# define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
- BOOST_PP_REPEAT( \
- BOOST_PP_SUB_D(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \
- , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \
- , (i, param, value_func) \
- ) \
- /**/
-
-
-#endif // BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
-
-#define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \
- BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \
- /**/
-
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
- BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \
- /**/
-#else
-# define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
- BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_EMPTY) \
- /**/
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/default_params.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_DEFAULT_PARAMS(0,T,int): <nothing>
-// BOOST_MPL_PP_DEFAULT_PARAMS(1,T,int): T1 = int
-// BOOST_MPL_PP_DEFAULT_PARAMS(2,T,int): T1 = int, T2 = int
-// BOOST_MPL_PP_DEFAULT_PARAMS(n,T,int): T1 = int, T2 = int, .., Tn = int
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \
- BOOST_PP_CAT(BOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,v) \
- /**/
-
-# define BOOST_MPL_PP_DEFAULT_PARAMS_0(p,v)
-# define BOOST_MPL_PP_DEFAULT_PARAMS_1(p,v) p##1=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_2(p,v) p##1=v,p##2=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_3(p,v) p##1=v,p##2=v,p##3=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_4(p,v) p##1=v,p##2=v,p##3=v,p##4=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_5(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_6(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_7(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_8(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v
-# define BOOST_MPL_PP_DEFAULT_PARAMS_9(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v,p##9=v
-
-#else
-
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC(unused, i, pv) \
- BOOST_PP_COMMA_IF(i) \
- BOOST_PP_CAT( BOOST_PP_TUPLE_ELEM(2,0,pv), BOOST_PP_INC(i) ) \
- = BOOST_PP_TUPLE_ELEM(2,1,pv) \
- /**/
-
-# define BOOST_MPL_PP_DEFAULT_PARAMS(n, param, value) \
- BOOST_PP_REPEAT( \
- n \
- , BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \
- , (param,value) \
- ) \
- /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/enum.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_ENUM(0,int): <nothing>
-// BOOST_MPL_PP_ENUM(1,int): int
-// BOOST_MPL_PP_ENUM(2,int): int, int
-// BOOST_MPL_PP_ENUM(n,int): int, int, .., int
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_ENUM(n, param) \
- BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \
- /**/
-
-# define BOOST_MPL_PP_ENUM_0(p)
-# define BOOST_MPL_PP_ENUM_1(p) p
-# define BOOST_MPL_PP_ENUM_2(p) p,p
-# define BOOST_MPL_PP_ENUM_3(p) p,p,p
-# define BOOST_MPL_PP_ENUM_4(p) p,p,p,p
-# define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p
-# define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p
-# define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p
-# define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p
-# define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p
-
-#else
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/repeat.hpp>
-
-# define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \
- BOOST_PP_COMMA_IF(i) param \
- /**/
-
-# define BOOST_MPL_PP_ENUM(n, param) \
- BOOST_PP_REPEAT( \
- n \
- , BOOST_MPL_PP_AUX_ENUM_FUNC \
- , param \
- ) \
- /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/ext_params.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_EXT_PARAMS(2,2,T): <nothing>
-// BOOST_MPL_PP_EXT_PARAMS(2,3,T): T2
-// BOOST_MPL_PP_EXT_PARAMS(2,4,T): T2, T3
-// BOOST_MPL_PP_EXT_PARAMS(2,n,T): T2, T3, .., Tn-1
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/mpl/aux_/preprocessor/filter_params.hpp>
-# include <boost/mpl/aux_/preprocessor/sub.hpp>
-
-# define BOOST_MPL_PP_EXT_PARAMS(i,j,p) \
- BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,BOOST_MPL_PP_SUB(j,i),p) \
- /**/
-
-# define BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \
- BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
- /**/
-
-# define BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
- BOOST_MPL_PP_EXT_PARAMS_##i(n,p) \
- /**/
-
-# define BOOST_MPL_PP_EXT_PARAMS_1(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9)
-# define BOOST_MPL_PP_EXT_PARAMS_2(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1)
-# define BOOST_MPL_PP_EXT_PARAMS_3(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1,p2)
-# define BOOST_MPL_PP_EXT_PARAMS_4(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4,p##5,p##6,p##7,p##8,p##9,p1,p2,p3)
-# define BOOST_MPL_PP_EXT_PARAMS_5(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5,p##6,p##7,p##8,p##9,p1,p2,p3,p4)
-# define BOOST_MPL_PP_EXT_PARAMS_6(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6,p##7,p##8,p##9,p1,p2,p3,p4,p5)
-# define BOOST_MPL_PP_EXT_PARAMS_7(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7,p##8,p##9,p1,p2,p3,p4,p5,p6)
-# define BOOST_MPL_PP_EXT_PARAMS_8(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8,p##9,p1,p2,p3,p4,p5,p6,p7)
-# define BOOST_MPL_PP_EXT_PARAMS_9(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9,p1,p2,p3,p4,p5,p6,p7,p8)
-
-#else
-
-# include <boost/preprocessor/arithmetic/add.hpp>
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_AUX_EXT_PARAM_FUNC(unused, i, op) \
- BOOST_PP_COMMA_IF(i) \
- BOOST_PP_CAT( \
- BOOST_PP_TUPLE_ELEM(2,1,op) \
- , BOOST_PP_ADD_D(1, i, BOOST_PP_TUPLE_ELEM(2,0,op)) \
- ) \
- /**/
-
-# define BOOST_MPL_PP_EXT_PARAMS(i, j, param) \
- BOOST_PP_REPEAT( \
- BOOST_PP_SUB_D(1,j,i) \
- , BOOST_MPL_PP_AUX_EXT_PARAM_FUNC \
- , (i,param) \
- ) \
- /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/filter_params.hpp,v $
-// $Date$
-// $Revision$
-
-#define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9)
-#define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1
-#define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2
-#define BOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3
-#define BOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4
-#define BOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5
-#define BOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6
-#define BOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7
-#define BOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8
-#define BOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_IS_SEQ_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_IS_SEQ_HPP_INCLUDED
-
-// Copyright Paul Mensonides 2003
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/is_seq.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.3 $
-
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/preprocessor/punctuation/paren.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/config/config.hpp>
-
-// returns 1 if 'seq' is a PP-sequence, 0 otherwise:
-//
-// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_IS_SEQ( int ) ) )
-// BOOST_PP_ASSERT( BOOST_MPL_PP_IS_SEQ( (int) ) )
-// BOOST_PP_ASSERT( BOOST_MPL_PP_IS_SEQ( (1)(2) ) )
-
-#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-
-# define BOOST_MPL_PP_IS_SEQ(seq) BOOST_PP_DEC( BOOST_PP_SEQ_SIZE( BOOST_MPL_PP_IS_SEQ_(seq) ) )
-# define BOOST_MPL_PP_IS_SEQ_(seq) BOOST_MPL_PP_IS_SEQ_SEQ_( BOOST_MPL_PP_IS_SEQ_SPLIT_ seq )
-# define BOOST_MPL_PP_IS_SEQ_SEQ_(x) (x)
-# define BOOST_MPL_PP_IS_SEQ_SPLIT_(unused) unused)((unused)
-
-#else
-
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_MPL_PP_IS_SEQ(seq) BOOST_MPL_PP_IS_SEQ_MWCC_((seq))
-# define BOOST_MPL_PP_IS_SEQ_MWCC_(args) BOOST_MPL_PP_IS_SEQ_ ## args
-# else
-# define BOOST_MPL_PP_IS_SEQ(seq) BOOST_MPL_PP_IS_SEQ_(seq)
-# endif
-
-# define BOOST_MPL_PP_IS_SEQ_(seq) BOOST_PP_CAT(BOOST_MPL_PP_IS_SEQ_, BOOST_MPL_PP_IS_SEQ_0 seq BOOST_PP_RPAREN())
-# define BOOST_MPL_PP_IS_SEQ_0(x) BOOST_MPL_PP_IS_SEQ_1(x
-# define BOOST_MPL_PP_IS_SEQ_ALWAYS_0(unused) 0
-# define BOOST_MPL_PP_IS_SEQ_BOOST_MPL_PP_IS_SEQ_0 BOOST_MPL_PP_IS_SEQ_ALWAYS_0(
-# define BOOST_MPL_PP_IS_SEQ_BOOST_MPL_PP_IS_SEQ_1(unused) 1
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_IS_SEQ_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/params.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_PARAMS(0,T): <nothing>
-// BOOST_MPL_PP_PARAMS(1,T): T1
-// BOOST_MPL_PP_PARAMS(2,T): T1, T2
-// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_PARAMS(n,p) \
- BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
- /**/
-
-# define BOOST_MPL_PP_PARAMS_0(p)
-# define BOOST_MPL_PP_PARAMS_1(p) p##1
-# define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2
-# define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3
-# define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4
-# define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5
-# define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6
-# define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7
-# define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8
-# define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9
-
-#else
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \
- BOOST_PP_COMMA_IF(i) \
- BOOST_PP_CAT(param, BOOST_PP_INC(i)) \
- /**/
-
-# define BOOST_MPL_PP_PARAMS(n, param) \
- BOOST_PP_REPEAT( \
- n \
- , BOOST_MPL_PP_AUX_PARAM_FUNC \
- , param \
- ) \
- /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/enum.hpp>
-#include <boost/mpl/aux_/preprocessor/sub.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-
-#define BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
-BOOST_MPL_PP_PARAMS(n, param) \
-BOOST_PP_COMMA_IF(BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n)) \
-BOOST_MPL_PP_ENUM( \
- BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n) \
- , def \
- ) \
-/**/
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/range.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.3 $
-
-#include <boost/preprocessor/seq/subseq.hpp>
-
-#define BOOST_MPL_PP_RANGE(first, length) \
- BOOST_PP_SEQ_SUBSEQ((0)(1)(2)(3)(4)(5)(6)(7)(8)(9), first, length) \
-/**/
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/repeat.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_REPEAT(n,f,param) \
- BOOST_PP_CAT(BOOST_MPL_PP_REPEAT_,n)(f,param) \
- /**/
-
-# define BOOST_MPL_PP_REPEAT_0(f,p)
-# define BOOST_MPL_PP_REPEAT_1(f,p) f(0,0,p)
-# define BOOST_MPL_PP_REPEAT_2(f,p) f(0,0,p) f(0,1,p)
-# define BOOST_MPL_PP_REPEAT_3(f,p) f(0,0,p) f(0,1,p) f(0,2,p)
-# define BOOST_MPL_PP_REPEAT_4(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p)
-# define BOOST_MPL_PP_REPEAT_5(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p)
-# define BOOST_MPL_PP_REPEAT_6(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p)
-# define BOOST_MPL_PP_REPEAT_7(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p)
-# define BOOST_MPL_PP_REPEAT_8(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p)
-# define BOOST_MPL_PP_REPEAT_9(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p)
-# define BOOST_MPL_PP_REPEAT_10(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p) f(0,9,p)
-
-#else
-
-# include <boost/preprocessor/repeat.hpp>
-
-# define BOOST_MPL_PP_REPEAT(n,f,param) \
- BOOST_PP_REPEAT(n,f,param) \
- /**/
-
-#endif
-
-#define BOOST_MPL_PP_REPEAT_IDENTITY_FUNC(unused1, unused2, x) x
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/sub.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-# include <boost/mpl/aux_/preprocessor/tuple.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
-# include <boost/preprocessor/cat.hpp>
-
-# define BOOST_MPL_PP_SUB(i,j) \
- BOOST_MPL_PP_SUB_DELAY(i,j) \
- /**/
-
-# define BOOST_MPL_PP_SUB_DELAY(i,j) \
- BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_SUB_##j) \
- /**/
-#else
-# define BOOST_MPL_PP_SUB(i,j) \
- BOOST_MPL_PP_SUB_DELAY(i,j) \
- /**/
-
-# define BOOST_MPL_PP_SUB_DELAY(i,j) \
- BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_SUB_##j \
- /**/
-#endif
-
-# define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10)
-# define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9)
-# define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8)
-# define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7)
-# define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6)
-# define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5)
-# define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4)
-# define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0,1,2,3)
-# define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2)
-# define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1)
-# define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0)
-
-#else
-
-# include <boost/preprocessor/arithmetic/sub.hpp>
-
-# define BOOST_MPL_PP_SUB(i,j) \
- BOOST_PP_SUB(i,j) \
- /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_TOKEN_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_TOKEN_EQUAL_HPP_INCLUDED
-
-// Copyright Paul Mensonides 2003
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/token_equal.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
-
-#include <boost/preprocessor/if.hpp>
-#include <boost/preprocessor/logical/bitand.hpp>
-#include <boost/preprocessor/logical/compl.hpp>
-#include <boost/preprocessor/tuple/eat.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-// compares tokens 'a' and 'b' for equality:
-//
-// #define BOOST_MPL_PP_TOKEN_EQUAL_apple(x) x
-// #define BOOST_MPL_PP_TOKEN_EQUAL_orange(x) x
-//
-// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_TOKEN_EQUAL(apple, abc) ) )
-// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_TOKEN_EQUAL(abc, apple) ) )
-// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_TOKEN_EQUAL(apple, orange) ) )
-// BOOST_PP_ASSERT( BOOST_MPL_PP_TOKEN_EQUAL(apple, apple) )
-// BOOST_PP_ASSERT( BOOST_MPL_PP_TOKEN_EQUAL(orange, orange) )
-
-#define BOOST_MPL_PP_TOKEN_EQUAL(a, b) \
- BOOST_PP_IIF( \
- BOOST_PP_BITAND( \
- BOOST_MPL_PP_IS_SEQ( BOOST_PP_CAT(BOOST_MPL_PP_TOKEN_EQUAL_, a)((unused)) ) \
- , BOOST_MPL_PP_IS_SEQ( BOOST_PP_CAT(BOOST_MPL_PP_TOKEN_EQUAL_, b)((unused)) ) \
- ) \
- , BOOST_MPL_PP_TOKEN_EQUAL_I \
- , 0 BOOST_PP_TUPLE_EAT(2) \
- )(a, b) \
-/**/
-
-#define BOOST_MPL_PP_TOKEN_EQUAL_I(a, b) \
- BOOST_PP_COMPL(BOOST_MPL_PP_IS_SEQ( \
- BOOST_MPL_PP_TOKEN_EQUAL_ ## a( \
- BOOST_MPL_PP_TOKEN_EQUAL_ ## b \
- )((unused)) \
- )) \
-/**/
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_TOKEN_EQUAL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/tuple.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
-
-#define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0
-#define BOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1
-#define BOOST_MPL_PP_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2
-#define BOOST_MPL_PP_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3
-#define BOOST_MPL_PP_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4
-#define BOOST_MPL_PP_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5
-#define BOOST_MPL_PP_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6
-#define BOOST_MPL_PP_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7
-#define BOOST_MPL_PP_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8
-#define BOOST_MPL_PP_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9
-#define BOOST_MPL_PP_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED
-#define BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/ptr_to_ref.hpp,v $
-// $Date: 2005/06/22 15:20:18 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
- || ( BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \
- && !(defined(__STD_STRICT_ANSI) \
- || defined(__STD_STRICT_ANSI_ERRORS)) )
-
-# define BOOST_MPL_AUX_PTR_TO_REF(X) \
- *BOOST_MPL_AUX_STATIC_CAST(X*, 0) \
-/**/
-
-#else
-
-# define BOOST_MPL_AUX_PTR_TO_REF(X) \
- aux::ptr_to_ref(BOOST_MPL_AUX_STATIC_CAST(X*, 0)) \
-/**/
-
-#endif
-
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > static T const& ptr_to_ref(T*);
-
-}}}
-
-#endif // BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/push_back_impl.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/aux_/has_type.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-// agurt 05/feb/04: no default implementation; the stub definition is needed
-// to enable the default 'has_push_back' implementation below
-template< typename Tag >
-struct push_back_impl
-{
- template< typename Sequence, typename T > struct apply {};
-};
-
-template< typename Tag >
-struct has_push_back_impl
-{
- template< typename Seq > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : aux::has_type< push_back<Seq,int> >
- {
-#else
- {
- typedef aux::has_type< push_back<Seq,int> > type;
- BOOST_STATIC_CONSTANT(bool, value =
- (aux::has_type< push_back<Seq,int> >::value)
- );
-#endif
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_back_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_back_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/push_front_impl.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/aux_/has_type.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-// agurt 05/feb/04: no default implementation; the stub definition is needed
-// to enable the default 'has_push_front' implementation below
-
-template< typename Tag >
-struct push_front_impl
-{
- template< typename Sequence, typename T > struct apply {};
-};
-
-template< typename Tag >
-struct has_push_front_impl
-{
- template< typename Seq > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : aux::has_type< push_front<Seq,int> >
- {
-#else
- {
- typedef aux::has_type< push_front<Seq,int> > type;
- BOOST_STATIC_CONSTANT(bool, value =
- (aux::has_type< push_front<Seq,int> >::value)
- );
-#endif
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/O1_size.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/aux_/range_c/size.hpp>
-#include <boost/mpl/aux_/range_c/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct O1_size_impl< aux::half_open_range_tag >
- : size_impl< aux::half_open_range_tag >
-{
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/back.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/back_fwd.hpp>
-#include <boost/mpl/prior.hpp>
-#include <boost/mpl/aux_/range_c/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct back_impl< aux::half_open_range_tag >
-{
- template< typename Range > struct apply
- {
- typedef typename prior< typename Range::finish >::type type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/empty.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/aux_/range_c/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct empty_impl< aux::half_open_range_tag >
-{
- template< typename Range > struct apply
- : equal_to<
- typename Range::start
- , typename Range::finish
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/front.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/aux_/range_c/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct front_impl< aux::half_open_range_tag >
-{
- template< typename Range > struct apply
- {
- typedef typename Range::start type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/iterator.hpp,v $
-// $Date: 2004/12/20 17:52:43 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-// theoretically will work on any discrete numeric type
-template< typename N > struct r_iter
-{
- typedef aux::r_iter_tag tag;
- typedef random_access_iterator_tag category;
- typedef N type;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- typedef r_iter< typename mpl::next<N>::type > next;
- typedef r_iter< typename mpl::prior<N>::type > prior;
-#endif
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename N
- >
-struct next< r_iter<N> >
-{
- typedef r_iter< typename mpl::next<N>::type > type;
-};
-
-template<
- typename N
- >
-struct prior< r_iter<N> >
-{
- typedef r_iter< typename mpl::prior<N>::type > type;
-};
-
-#endif
-
-
-template<> struct advance_impl<aux::r_iter_tag>
-{
- template< typename Iter, typename Dist > struct apply
- {
- typedef typename deref<Iter>::type n_;
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- typedef typename plus_impl<integral_c_tag,integral_c_tag>
- ::template apply<n_,Dist>::type m_;
-#else
- typedef typename plus<n_,Dist>::type m_;
-#endif
- // agurt, 10/nov/04: to be generic, the code have to do something along
- // the lines below...
- //
- // typedef typename apply_wrap1<
- // numeric_cast< typename m_::tag, typename n_::tag >
- // , m_
- // >::type result_;
- //
- // ... meanwhile:
-
- typedef integral_c<
- typename aux::value_type_wknd<n_>::type
- , BOOST_MPL_AUX_VALUE_WKND(m_)::value
- > result_;
-
- typedef r_iter<result_> type;
- };
-};
-
-template<> struct distance_impl<aux::r_iter_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- : minus<
- typename Iter2::type
- , typename Iter1::type
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/size.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/aux_/range_c/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct size_impl< aux::half_open_range_tag >
-{
- template< typename Range > struct apply
- : minus<
- typename Range::finish
- , typename Range::start
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED
-#define BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/range_c/tag.hpp,v $
-// $Date: 2004/11/28 01:31:44 $
-// $Revision: 1.5 $
-
-namespace boost { namespace mpl { namespace aux {
-
-struct half_open_range_tag;
-struct r_iter_tag;
-
-}}}
-
-#endif // BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/reverse_fold_impl.hpp,v $
-// $Date: 2004/10/01 16:29:34 $
-// $Revision: 1.3 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/next_prior.hpp>
-# include <boost/mpl/deref.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-# include <boost/mpl/if.hpp>
-# include <boost/type_traits/is_same.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER reverse_fold_impl.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
-# define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_fold
-# include <boost/mpl/aux_/reverse_fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp,v $
-// $Date: 2004/10/24 08:18:03 $
-// $Revision: 1.3 $
-
-# include <boost/mpl/limits/unrolling.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/dec.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-// local macros, #undef-ined at the end of the header
-
-# define AUX778076_ITER_FOLD_FORWARD_STEP(unused, n_, unused2) \
- typedef typename apply2< \
- ForwardOp \
- , BOOST_PP_CAT(fwd_state,n_) \
- , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,n_)) \
- >::type BOOST_PP_CAT(fwd_state,BOOST_PP_INC(n_)); \
- typedef typename mpl::next<BOOST_PP_CAT(iter,n_)>::type \
- BOOST_PP_CAT(iter,BOOST_PP_INC(n_)); \
- /**/
-
-# define AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC(n_) \
- typedef typename apply2< \
- BackwardOp \
- , BOOST_PP_CAT(bkwd_state,n_) \
- , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,BOOST_PP_DEC(n_))) \
- >::type BOOST_PP_CAT(bkwd_state,BOOST_PP_DEC(n_)); \
- /**/
-
-# define AUX778076_ITER_FOLD_BACKWARD_STEP(unused, n_, j) \
- AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC( \
- BOOST_PP_SUB_D(1,j,n_) \
- ) \
- /**/
-
-# define AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(n_) \
- typedef typename nested_chunk::state BOOST_PP_CAT(bkwd_state,n_);
- /**/
-
-# define AUX778076_FOLD_IMPL_NAME \
- BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
- /**/
-
-# define AUX778076_FOLD_CHUNK_NAME \
- BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
- /**/
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-template<
- BOOST_MPL_AUX_NTTP_DECL(long, N)
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/reverse_fold_impl_body.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template<
- BOOST_MPL_AUX_NTTP_DECL(long, N)
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME
-{
- typedef First iter0;
- typedef State fwd_state0;
-
- BOOST_MPL_PP_REPEAT(
- BOOST_MPL_LIMIT_UNROLLING
- , AUX778076_ITER_FOLD_FORWARD_STEP
- , unused
- )
-
- typedef AUX778076_FOLD_IMPL_NAME<
- ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
- , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING)
- , Last
- , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING)
- , BackwardOp
- , ForwardOp
- > nested_chunk;
-
- AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING)
-
- BOOST_MPL_PP_REPEAT(
- BOOST_MPL_LIMIT_UNROLLING
- , AUX778076_ITER_FOLD_BACKWARD_STEP
- , BOOST_MPL_LIMIT_UNROLLING
- )
-
- typedef bkwd_state0 state;
- typedef typename nested_chunk::iterator iterator;
-};
-
-// fallback implementation for sequences of unknown size
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,BackwardOp,ForwardOp>
-{
- typedef AUX778076_FOLD_IMPL_NAME<
- -1
- , typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
- , BackwardOp
- , ForwardOp
- > nested_step;
-
- typedef typename apply2<
- BackwardOp
- , typename nested_step::state
- , AUX778076_FOLD_IMPL_OP(First)
- >::type state;
-
- typedef typename nested_step::iterator iterator;
-};
-
-template<
- typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,BackwardOp,ForwardOp>
-{
- typedef State state;
- typedef Last iterator;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/reverse_fold_impl_body.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct AUX778076_FOLD_CHUNK_NAME
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State fwd_state0;
-
- BOOST_MPL_PP_REPEAT(
- BOOST_MPL_LIMIT_UNROLLING
- , AUX778076_ITER_FOLD_FORWARD_STEP
- , unused
- )
-
- typedef AUX778076_FOLD_IMPL_NAME<
- ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
- , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING)
- , Last
- , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING)
- , BackwardOp
- , ForwardOp
- > nested_chunk;
-
- AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING)
-
- BOOST_MPL_PP_REPEAT(
- BOOST_MPL_LIMIT_UNROLLING
- , AUX778076_ITER_FOLD_BACKWARD_STEP
- , BOOST_MPL_LIMIT_UNROLLING
- )
-
- typedef bkwd_state0 state;
- typedef typename nested_chunk::iterator iterator;
- };
-};
-
-// fallback implementation for sequences of unknown size
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
- typename Last
- , typename State
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same<First,Last>::type
- , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
- , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,BackwardOp,ForwardOp>
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
- /// ETI workaround
- template<> struct result_<int,int,int,int,int>
- {
- typedef int state;
- typedef int iterator;
- };
-#endif
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
-{
- typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
- , BackwardOp
- , ForwardOp
- > nested_step;
-
- typedef typename apply2<
- BackwardOp
- , typename nested_step::state
- , AUX778076_FOLD_IMPL_OP(First)
- >::type state;
-
- typedef typename nested_step::iterator iterator;
-};
-
-template<
- BOOST_MPL_AUX_NTTP_DECL(long, N)
- , typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME
- : AUX778076_FOLD_CHUNK_NAME<N>
- ::template result_<First,Last,State,BackwardOp,ForwardOp>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}}
-
-# undef AUX778076_FIRST_BACKWARD_STATE_TYPEDEF
-# undef AUX778076_ITER_FOLD_BACKWARD_STEP
-# undef AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC
-# undef AUX778076_ITER_FOLD_FORWARD_STEP
-
-#undef AUX778076_FOLD_IMPL_OP
-#undef AUX778076_FOLD_IMPL_NAME_PREFIX
-
-///// iteration
-
-#else
-
-# define n_ BOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME<n_,First,Last,State,BackwardOp,ForwardOp>
-{
- typedef First iter0;
- typedef State fwd_state0;
-
- BOOST_MPL_PP_REPEAT(
- n_
- , AUX778076_ITER_FOLD_FORWARD_STEP
- , unused
- )
-
- typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_);
-
- BOOST_MPL_PP_REPEAT(
- n_
- , AUX778076_ITER_FOLD_BACKWARD_STEP
- , n_
- )
-
- typedef bkwd_state0 state;
- typedef BOOST_PP_CAT(iter,n_) iterator;
-};
-
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename BackwardOp
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State fwd_state0;
-
- BOOST_MPL_PP_REPEAT(
- n_
- , AUX778076_ITER_FOLD_FORWARD_STEP
- , unused
- )
-
- typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_);
-
- BOOST_MPL_PP_REPEAT(
- n_
- , AUX778076_ITER_FOLD_BACKWARD_STEP
- , n_
- )
-
- typedef bkwd_state0 state;
- typedef BOOST_PP_CAT(iter,n_) iterator;
- };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
- /// ETI workaround
- template<> struct result_<int,int,int,int,int>
- {
- typedef int state;
- typedef int iterator;
- };
-#endif
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-# undef n_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/reverse_iter_fold_impl.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/next_prior.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-# include <boost/mpl/if.hpp>
-# include <boost/type_traits/is_same.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER reverse_iter_fold_impl.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# define AUX778076_FOLD_IMPL_OP(iter) iter
-# define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_iter_fold
-# include <boost/mpl/aux_/reverse_fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/sequence_wrapper.hpp,v $
-// $Date: 2004/11/28 01:46:37 $
-// $Revision: 1.4 $
-
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/static_constant.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/enum_params_with_a_default.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/enum.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-#if defined(BOOST_MPL_PREPROCESSING_MODE)
-# undef LONG_MAX
-#endif
-
-namespace boost { namespace mpl {
-
-#if !defined(AUX778076_SEQUENCE_BASE_NAME)
-# define AUX778076_SEQUENCE_BASE_NAME AUX778076_SEQUENCE_NAME
-#endif
-
-#if !defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-
-# define AUX778076_SEQUENCE_PARAM_NAME T
-# define AUX778076_SEQUENCE_TEMPLATE_PARAM typename T
-# define AUX778076_SEQUENCE_DEFAULT na
-
-# define AUX778076_SEQUENCE_NAME_N(n) \
- BOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \
- /**/
-
-# define AUX778076_SEQUENCE_PARAMS() \
- BOOST_PP_ENUM_PARAMS( \
- AUX778076_SEQUENCE_LIMIT \
- , AUX778076_SEQUENCE_TEMPLATE_PARAM \
- ) \
- /**/
-
-# define AUX778076_SEQUENCE_ARGS() \
- BOOST_PP_ENUM_PARAMS( \
- AUX778076_SEQUENCE_LIMIT \
- , T \
- ) \
- /**/
-
-# define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
- BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
- AUX778076_SEQUENCE_LIMIT \
- , AUX778076_SEQUENCE_TEMPLATE_PARAM \
- , AUX778076_SEQUENCE_DEFAULT \
- ) \
- /**/
-
-# define AUX778076_SEQUENCE_N_PARAMS(n) \
- BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
- /**/
-
-# define AUX778076_SEQUENCE_N_ARGS(n) \
- BOOST_PP_ENUM_PARAMS(n, T) \
- /**/
-
-# define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
- BOOST_PP_ENUM_PARAMS(n, T) \
- BOOST_PP_COMMA_IF(n) \
- BOOST_PP_ENUM( \
- BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
- , BOOST_PP_TUPLE_ELEM_3_2 \
- , AUX778076_SEQUENCE_DEFAULT \
- ) \
- /**/
-
-#else // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-# define AUX778076_SEQUENCE_PARAM_NAME C
-# define AUX778076_SEQUENCE_TEMPLATE_PARAM BOOST_MPL_AUX_NTTP_DECL(long, C)
-# define AUX778076_SEQUENCE_DEFAULT LONG_MAX
-
-# define AUX778076_SEQUENCE_PARAMS() \
- typename T, BOOST_PP_ENUM_PARAMS( \
- AUX778076_SEQUENCE_LIMIT \
- , AUX778076_SEQUENCE_TEMPLATE_PARAM \
- ) \
- /**/
-
-# define AUX778076_SEQUENCE_ARGS() \
- T, BOOST_PP_ENUM_PARAMS( \
- AUX778076_SEQUENCE_LIMIT \
- , C \
- ) \
- /**/
-
-# define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
- typename T, \
- BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
- AUX778076_SEQUENCE_LIMIT \
- , AUX778076_SEQUENCE_TEMPLATE_PARAM \
- , AUX778076_SEQUENCE_DEFAULT \
- ) \
- /**/
-
-# define AUX778076_SEQUENCE_N_PARAMS(n) \
- typename T BOOST_PP_COMMA_IF(n) \
- BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
- /**/
-
-# define AUX778076_SEQUENCE_N_ARGS(n) \
- T BOOST_PP_COMMA_IF(n) \
- BOOST_PP_ENUM_PARAMS(n, C) \
- /**/
-
-# define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
- T, BOOST_PP_ENUM_PARAMS(n, C) \
- BOOST_PP_COMMA_IF(n) \
- BOOST_PP_ENUM( \
- BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
- , BOOST_PP_TUPLE_ELEM_3_2 \
- , AUX778076_SEQUENCE_DEFAULT \
- ) \
- /**/
-
-#endif // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// forward declaration
-template<
- AUX778076_SEQUENCE_DEFAULT_PARAMS()
- >
-struct AUX778076_SEQUENCE_NAME;
-#else
-namespace aux {
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser);
-}
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, AUX778076_SEQUENCE_LIMIT, <boost/mpl/aux_/sequence_wrapper.hpp>))
-#include BOOST_PP_ITERATE()
-
-// real C++ version is already taken care of
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace aux {
-// ???_count_args
-#define AUX778076_COUNT_ARGS_PREFIX AUX778076_SEQUENCE_NAME
-#define AUX778076_COUNT_ARGS_DEFAULT AUX778076_SEQUENCE_DEFAULT
-#define AUX778076_COUNT_ARGS_PARAM_NAME AUX778076_SEQUENCE_PARAM_NAME
-#define AUX778076_COUNT_ARGS_TEMPLATE_PARAM AUX778076_SEQUENCE_TEMPLATE_PARAM
-#define AUX778076_COUNT_ARGS_ARITY AUX778076_SEQUENCE_LIMIT
-#define AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-#include <boost/mpl/aux_/count_args.hpp>
-
-template<
- AUX778076_SEQUENCE_PARAMS()
- >
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)
-{
- typedef aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_count_args)<
- BOOST_PP_ENUM_PARAMS(AUX778076_SEQUENCE_LIMIT, AUX778076_SEQUENCE_PARAM_NAME)
- > arg_num_;
-
- typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)< arg_num_::value >
- ::template result_< AUX778076_SEQUENCE_ARGS() >::type type;
-};
-
-} // namespace aux
-
-template<
- AUX778076_SEQUENCE_DEFAULT_PARAMS()
- >
-struct AUX778076_SEQUENCE_NAME
- : aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
- AUX778076_SEQUENCE_ARGS()
- >::type
-{
- typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
- AUX778076_SEQUENCE_ARGS()
- >::type type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-# undef AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS
-# undef AUX778076_SEQUENCE_N_ARGS
-# undef AUX778076_SEQUENCE_N_PARAMS
-# undef AUX778076_SEQUENCE_DEFAULT_PARAMS
-# undef AUX778076_SEQUENCE_ARGS
-# undef AUX778076_SEQUENCE_PARAMS
-# undef AUX778076_SEQUENCE_NAME_N
-# undef AUX778076_SEQUENCE_DEFAULT
-# undef AUX778076_SEQUENCE_TEMPLATE_PARAM
-# undef AUX778076_SEQUENCE_PARAM_NAME
-# undef AUX778076_SEQUENCE_LIMIT
-# undef AUX778076_SEQUENCE_BASE_NAME
-# undef AUX778076_SEQUENCE_NAME
-# undef AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-}}
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#if i_ == AUX778076_SEQUENCE_LIMIT
-
-/// primary template (not a specialization!)
-template<
- AUX778076_SEQUENCE_N_PARAMS(i_)
- >
-struct AUX778076_SEQUENCE_NAME
- : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >
-{
- typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-};
-
-#else
-
-template<
- AUX778076_SEQUENCE_N_PARAMS(i_)
- >
-struct AUX778076_SEQUENCE_NAME< AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(i_) >
- : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >
-{
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
- typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-#else
- typedef AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-#endif
-};
-
-#endif // i_ == AUX778076_SEQUENCE_LIMIT
-
-# else
-
-namespace aux {
-
-template<>
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)<i_>
-{
- template<
- AUX778076_SEQUENCE_PARAMS()
- >
- struct result_
- {
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
- typedef typename AUX778076_SEQUENCE_NAME_N(i_)<
- AUX778076_SEQUENCE_N_ARGS(i_)
- >::type type;
-#else
- typedef AUX778076_SEQUENCE_NAME_N(i_)<
- AUX778076_SEQUENCE_N_ARGS(i_)
- >::type type;
-#endif
- };
-};
-
-} // namespace aux
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/shift_op.hpp,v $
-// $Date: 2004/09/07 08:51:32 $
-// $Revision: 1.4 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/integral_c.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-# define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#define AUX778076_OP_ARITY 2
-
-#include <boost/mpl/aux_/numeric_op.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/integral.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
-{
- BOOST_STATIC_CONSTANT(T, value = (n AUX778076_OP_TOKEN s));
- typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
- template< typename N, typename S > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
- : integral_c<
- typename N::value_type
- , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
- AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(S)::value
- )
- >
-#else
- : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
- typename N::value_type
- , typename S::value_type
- , N::value
- , S::value
- >::type
-#endif
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED
-#define BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/single_element_iter.hpp,v $
-// $Date: 2004/11/28 01:47:44 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace aux {
-
-template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_) >
-struct sel_iter;
-
-template< typename T >
-struct sel_iter<T,0>
-{
- typedef random_access_iterator_tag category;
- typedef sel_iter<T,1> next;
- typedef T type;
-};
-
-template< typename T >
-struct sel_iter<T,1>
-{
- typedef random_access_iterator_tag category;
- typedef sel_iter<T,0> prior;
-};
-
-} // namespace aux
-
-template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_), typename Distance >
-struct advance< aux::sel_iter<T,is_last_>,Distance>
-{
- typedef aux::sel_iter<
- T
- , ( is_last_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Distance) )
- > type;
-};
-
-template<
- typename T
- , BOOST_MPL_AUX_NTTP_DECL(int, l1)
- , BOOST_MPL_AUX_NTTP_DECL(int, l2)
- >
-struct distance< aux::sel_iter<T,l1>, aux::sel_iter<T,l2> >
- : int_<( l2 - l1 )>
-{
-};
-
-#else
-
-namespace aux {
-
-struct sel_iter_tag;
-
-template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_) >
-struct sel_iter
-{
- enum { pos_ = is_last_ };
- typedef aux::sel_iter_tag tag;
- typedef random_access_iterator_tag category;
-
- typedef sel_iter<T,(is_last_ + 1)> next;
- typedef sel_iter<T,(is_last_ - 1)> prior;
- typedef T type;
-};
-
-} // namespace aux
-
-template<> struct advance_impl<aux::sel_iter_tag>
-{
- template< typename Iterator, typename N > struct apply
- {
- enum { pos_ = Iterator::pos_, n_ = N::value };
- typedef aux::sel_iter<
- typename Iterator::type
- , (pos_ + n_)
- > type;
- };
-};
-
-template<> struct distance_impl<aux::sel_iter_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
- typedef int_<( pos2_ - pos1_ )> type;
- BOOST_STATIC_CONSTANT(int, value = ( pos2_ - pos1_ ));
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}
-
-#endif // BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/size_impl.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by
-// specializing either the 'size_impl' or the primary 'size' template
-
-template< typename Tag >
-struct size_impl
-{
- template< typename Sequence > struct apply
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561))
- : distance<
- typename begin<Sequence>::type
- , typename end<Sequence>::type
- >
- {
-#else
- {
- typedef typename distance<
- typename begin<Sequence>::type
- , typename end<Sequence>::type
- >::type type;
-#endif
- };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/sort_impl.hpp,v $
-// $Date: 2004/11/28 01:47:44 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/partition.hpp>
-#include <boost/mpl/copy.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/back_inserter.hpp>
-#include <boost/mpl/front_inserter.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/joint_view.hpp>
-#include <boost/mpl/single_view.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/empty.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/aux_/na.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Seq, typename Pred >
-struct quick_sort;
-
-// agurt, 10/nov/04: for the sake of deficeint compilers
-template< typename Pred, typename Pivot >
-struct quick_sort_pred
-{
- template< typename T > struct apply
- {
- typedef typename apply2<Pred,T,Pivot>::type type;
- };
-};
-
-template<
- typename Seq
- , typename Pred
- >
-struct quick_sort_impl
-{
- typedef typename begin<Seq>::type pivot;
- typedef typename partition<
- iterator_range<
- typename next<pivot>::type
- , typename end<Seq>::type
- >
- , protect< aux::quick_sort_pred< Pred, typename deref<pivot>::type > >
- , back_inserter< vector<> >
- , back_inserter< vector<> >
- >::type partitioned;
-
- typedef typename quick_sort< typename partitioned::first, Pred >::type part1;
- typedef typename quick_sort< typename partitioned::second, Pred >::type part2;
-
- typedef joint_view<
- joint_view< part1, single_view< typename deref<pivot>::type > >
- , part2
- > type;
-};
-
-template<
- typename Seq
- , typename Pred
- >
-struct quick_sort
- : eval_if<
- empty<Seq>
- , identity<Seq>
- , quick_sort_impl<Seq,Pred>
- >
-{
-};
-
-
-template <
- typename Sequence
- , typename Pred
- , typename In
- >
-struct sort_impl
-{
- typedef typename quick_sort<
- Sequence
- , typename if_na<Pred,less<> >::type
- >::type result_;
-
- typedef typename copy<result_,In>::type type;
-};
-
-template <
- typename Sequence
- , typename Pred
- , typename In
- >
-struct reverse_sort_impl
-{
- typedef typename quick_sort<
- Sequence
- , typename if_na<Pred,less<> >::type
- >::type result_;
-
- typedef typename reverse_copy<result_,In>::type type;
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/static_cast.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__GNUC__, < 3) \
- || BOOST_WORKAROUND(__MWERKS__, <= 0x3001)
-# define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr)
-#else
-# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
-#endif
-
-#endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/template_arity.hpp,v $
-// $Date: 2004/09/07 12:24:48 $
-// $Revision: 1.11 $
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/aux_/template_arity_fwd.hpp>
-# include <boost/mpl/int.hpp>
-# if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-# include <boost/mpl/aux_/type_wrapper.hpp>
-# endif
-# else
-# include <boost/mpl/aux_/has_rebind.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER template_arity.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/range.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-
-# include <boost/preprocessor/seq/fold_left.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-# define AUX778076_ARITY BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-
-namespace boost { namespace mpl { namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
-{
- typedef char (&type)[N + 1];
-};
-
-# define AUX778076_MAX_ARITY_OP(unused, state, i_) \
- ( BOOST_PP_CAT(C,i_) > 0 ? BOOST_PP_CAT(C,i_) : state ) \
-/**/
-
-template<
- BOOST_MPL_PP_PARAMS(AUX778076_ARITY, BOOST_MPL_AUX_NTTP_DECL(int, C))
- >
-struct max_arity
-{
- BOOST_STATIC_CONSTANT(int, value =
- BOOST_PP_SEQ_FOLD_LEFT(
- AUX778076_MAX_ARITY_OP
- , -1
- , BOOST_MPL_PP_RANGE(1, AUX778076_ARITY)
- )
- );
-};
-
-# undef AUX778076_MAX_ARITY_OP
-
-arity_tag<0>::type arity_helper(...);
-
-# define BOOST_PP_ITERATION_LIMITS (1, AUX778076_ARITY)
-# define BOOST_PP_FILENAME_1 <boost/mpl/aux_/template_arity.hpp>
-# include BOOST_PP_ITERATE()
-
-template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct template_arity_impl
-{
- BOOST_STATIC_CONSTANT(int, value =
- sizeof(arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1
- );
-};
-
-# define AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION(unused, i_, F) \
- BOOST_PP_COMMA_IF(i_) template_arity_impl<F,BOOST_PP_INC(i_)>::value \
-/**/
-
-template< typename F >
-struct template_arity
-{
- BOOST_STATIC_CONSTANT(int, value = (
- max_arity< BOOST_MPL_PP_REPEAT(
- AUX778076_ARITY
- , AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
- , F
- ) >::value
- ));
-
- typedef mpl::int_<value> type;
-};
-
-# undef AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
-
-# undef AUX778076_ARITY
-
-}}}
-
-# endif // BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-# else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-# include <boost/mpl/aux_/config/eti.hpp>
-
-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>
-{
-};
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-template<>
-struct template_arity<int>
- : mpl::int_<-1>
-{
-};
-#endif
-
-}}}
-
-# endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
- , BOOST_MPL_PP_PARAMS(i_, typename T)
- >
-typename arity_tag<i_>::type
-arity_helper(type_wrapper< F<BOOST_MPL_PP_PARAMS(i_, T)> >, arity_tag<i_>);
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/template_arity_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename F > struct template_arity;
-
-}}}
-
-#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TEST_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEST_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/test.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/test/test_case.hpp>
-#include <boost/mpl/aux_/test/data.hpp>
-#include <boost/mpl/aux_/test/assert.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-int main()
-{
- return 0;
-}
-
-using namespace boost;
-using namespace mpl;
-
-#endif // BOOST_MPL_AUX_TEST_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TEST_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEST_ASSERT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/test/assert.hpp,v $
-// $Date: 2004/10/01 16:29:37 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/assert.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define MPL_ASSERT(pred) BOOST_MPL_ASSERT(pred)
-#define MPL_ASSERT_NOT(pred) BOOST_MPL_ASSERT_NOT(pred)
-#define MPL_ASSERT_MSG(c, msg, types) BOOST_MPL_ASSERT_MSG(c, msg, types)
-#define MPL_ASSERT_RELATION(x, rel, y) BOOST_MPL_ASSERT_RELATION(x, rel, y)
-
-#define MPL_ASSERT_INSTANTIATION(x) \
- enum { BOOST_PP_CAT(instantiation_test, __LINE__) = sizeof( x ) } \
-/**/
-
-#endif // BOOST_MPL_AUX_TEST_ASSERT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TEST_DATA_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEST_DATA_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/test/data.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.3 $
-
-#include <boost/noncopyable.hpp>
-
-enum enum_ {};
-struct UDT {};
-struct incomplete;
-class abstract { public: virtual ~abstract() = 0; };
-using boost::noncopyable;
-
-#endif // BOOST_MPL_AUX_TEST_DATA_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TEST_TEST_CASE_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEST_TEST_CASE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/test/test_case.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.3 $
-
-#include <boost/preprocessor/cat.hpp>
-
-#define MPL_TEST_CASE() void BOOST_PP_CAT(test,__LINE__)()
-
-#endif // BOOST_MPL_AUX_TEST_TEST_CASE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/traits_lambda_spec.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) /**/
-
-#elif !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-
-# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \
-template<> struct trait<void_> \
-{ \
- template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
- { \
- }; \
-}; \
-/**/
-
-#else
-
-# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \
-template<> struct trait<void_> \
-{ \
- template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
- { \
- }; \
-}; \
-template<> struct trait<int> \
-{ \
- template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
- { \
- typedef int type; \
- }; \
-}; \
-/**/
-
-#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif // BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TRANSFORM_ITER_HPP_INCLUDED
-#define BOOST_MPL_AUX_TRANSFORM_ITER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/transform_iter.hpp,v $
-// $Date: 2004/09/07 12:07:56 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
-struct transform_iter
-{
- typedef Iterator base;
- typedef forward_iterator_tag category;
- typedef transform_iter< typename mpl::next<base>::type,LastIterator,F > next;
-
- typedef typename apply1<
- F
- , typename deref<base>::type
- >::type type;
-};
-
-template<
- typename LastIterator
- , typename F
- >
-struct transform_iter< LastIterator,LastIterator,F >
-{
- typedef LastIterator base;
- typedef forward_iterator_tag category;
-};
-
-#else
-
-template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
-struct transform_iter;
-
-template< bool >
-struct transform_iter_impl
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- typedef transform_iter< typename mpl::next<Iterator>::type,LastIterator,F > next;
-
- typedef typename apply1<
- F
- , typename deref<Iterator>::type
- >::type type;
- };
-};
-
-template<>
-struct transform_iter_impl<true>
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- };
-};
-
-template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
-struct transform_iter
- : transform_iter_impl<
- ::boost::is_same<Iterator,LastIterator>::value
- >::template result_< Iterator,LastIterator,F >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::transform_iter)
-
-}}
-
-#endif // BOOST_MPL_AUX_TRANSFORM_ITER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
-#define BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Peter Dimov 2000-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/type_wrapper.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct type_wrapper
-{
- typedef T type;
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// agurt 08/may/03: a complicated way to extract the wrapped type; need it
-// mostly for the sake of GCC (3.2.x), which ICEs if you try to extract the
-// nested 'type' from 'type_wrapper<T>' when the latter was the result of a
-// 'typeof' expression
-template< typename T > struct wrapped_type;
-
-template< typename T > struct wrapped_type< type_wrapper<T> >
-{
- typedef T type;
-};
-#else
-template< typename W > struct wrapped_type
-{
- typedef typename W::type type;
-};
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
-#define BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
-
-// Copyright Peter Dimov and Multi Media Ltd 2001, 2002
-// Copyright David Abrahams 2001
-//
-// Distributed under the 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: /cvsroot/boost/boost/boost/mpl/aux_/unwrap.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.3 $
-
-#include <boost/ref.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename F >
-inline
-F& unwrap(F& f, long)
-{
- return f;
-}
-
-template< typename F >
-inline
-F&
-unwrap(reference_wrapper<F>& f, int)
-{
- return f;
-}
-
-template< typename F >
-inline
-F&
-unwrap(reference_wrapper<F> const& f, int)
-{
- return f;
-}
-
-}}}
-
-#endif // BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/value_wknd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
- || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-
-# include <boost/mpl/int.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-template< typename C_ > struct value_wknd
- : C_
-{
-};
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-template<> struct value_wknd<int>
- : int_<1>
-{
- using int_<1>::value;
-};
-#endif
-}}}
-
-
-#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-# define BOOST_MPL_AUX_VALUE_WKND(C) \
- ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \
-/**/
-# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C)
-#else
-# define BOOST_MPL_AUX_VALUE_WKND(C) C
-# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \
- ::boost::mpl::aux::value_wknd< C > \
-/**/
-#endif
-
-#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
-
-# define BOOST_MPL_AUX_VALUE_WKND(C) C
-# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C
-
-#endif
-
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
- BOOST_MPL_AUX_STATIC_CAST(T, C::value) \
-/**/
-#else
-# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
- BOOST_MPL_AUX_VALUE_WKND(C)::value \
-/**/
-#endif
-
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct value_type_wknd
-{
- typedef typename T::value_type type;
-};
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-template<> struct value_type_wknd<int>
-{
- typedef int type;
-};
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-#define BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/yes_no.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/arrays.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-
-namespace boost { namespace mpl { namespace aux {
-
-typedef char (&no_tag)[1];
-typedef char (&yes_tag)[2];
-
-template< bool C_ > struct yes_no_tag
-{
- typedef no_tag type;
-};
-
-template<> struct yes_no_tag<true>
-{
- typedef yes_tag type;
-};
-
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
-{
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- typedef char (&type)[n];
-#else
- char buf[n];
- typedef weighted_tag type;
-#endif
-};
-
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
-template<> struct weighted_tag<0>
-{
- typedef char (&type)[1];
-};
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BACK_HPP_INCLUDED
-#define BOOST_MPL_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/back.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/back_fwd.hpp>
-#include <boost/mpl/aux_/back_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct back
- : back_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,back,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, back)
-
-}}
-
-#endif // BOOST_MPL_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_BACK_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/back_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct back_impl;
-template< typename Sequence > struct back;
-
-}}
-
-#endif // BOOST_MPL_BACK_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/back_inserter.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/inserter.hpp>
-
-namespace boost {
-namespace mpl {
-
-template<
- typename Sequence
- >
-struct back_inserter
- : inserter< Sequence,push_back<> >
-{
-};
-
-}}
-
-#endif // BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BASE_HPP_INCLUDED
-#define BOOST_MPL_BASE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/base.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct base
-{
- typedef typename T::base type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,base,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, base)
-
-}}
-
-#endif // BOOST_MPL_BASE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BEGIN_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/begin.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/begin_end.hpp>
-
-#endif // BOOST_MPL_BEGIN_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_END_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/begin_end.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/aux_/begin_end_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-// agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more
-// happy this way (less ETI-related errors), and it doesn't affect
-// anything else
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct begin
-{
- typedef typename sequence_tag<Sequence>::type tag_;
- typedef typename begin_impl< tag_ >
- ::template apply< Sequence >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct end
-{
- typedef typename sequence_tag<Sequence>::type tag_;
- typedef typename end_impl< tag_ >
- ::template apply< Sequence >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, begin)
-BOOST_MPL_AUX_NA_SPEC(1, end)
-
-}}
-
-#endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/begin_end_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct begin_impl;
-template< typename Tag > struct end_impl;
-
-template< typename Sequence > struct begin;
-template< typename Sequence > struct end;
-
-}}
-
-#endif // BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_BIND_HPP_INCLUDED
-#define BOOST_MPL_BIND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bind.hpp,v $
-// $Date: 2004/10/26 14:51:04 $
-// $Revision: 1.13 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/bind_fwd.hpp>
-# include <boost/mpl/placeholders.hpp>
-# include <boost/mpl/next.hpp>
-# include <boost/mpl/protect.hpp>
-# include <boost/mpl/apply_wrap.hpp>
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/arity_spec.hpp>
-# include <boost/mpl/aux_/type_wrapper.hpp>
-# include <boost/mpl/aux_/yes_no.hpp>
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/type_traits/is_reference.hpp>
-# endif
-#endif
-
-#include <boost/mpl/aux_/config/bind.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# if defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-# define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp
-# else
-# define BOOST_MPL_PREPROCESSED_HEADER bind.hpp
-# endif
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-# include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-# include <boost/mpl/aux_/preprocessor/ext_params.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/preprocessor/add.hpp>
-# include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/ttp.hpp>
-# include <boost/mpl/aux_/config/dtp.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/inc.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-# define AUX778076_APPLY \
- BOOST_PP_CAT(apply_wrap,BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
- /**/
-
-# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-# define AUX778076_DMC_PARAM() , int dummy_
-# else
-# define AUX778076_DMC_PARAM()
-# endif
-
-# define AUX778076_BIND_PARAMS(param) \
- BOOST_MPL_PP_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- ) \
- /**/
-
-# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
- BOOST_MPL_PP_DEFAULT_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- , value \
- ) \
- /**/
-
-# define AUX778076_BIND_N_PARAMS(n, param) \
- BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
- /**/
-
-# define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \
- BOOST_PP_COMMA_IF(n) \
- BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
- /**/
-
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \
- AUX778076_BIND_DEFAULT_PARAMS(param, value) \
- /**/
-#else
-# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \
- AUX778076_BIND_PARAMS(param) \
- /**/
-#endif
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename T, AUX778076_BIND_PARAMS(typename U)
- >
-struct resolve_bind_arg
-{
- typedef T type;
-};
-
-# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-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;
-};
-
-# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-template<
- BOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U)
- >
-struct resolve_bind_arg< arg<N>,AUX778076_BIND_PARAMS(U) >
-{
- typedef typename AUX778076_APPLY<mpl::arg<N>, AUX778076_BIND_PARAMS(U)>::type type;
-};
-
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
- typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U)
- >
-struct resolve_bind_arg< bind<F,AUX778076_BIND_PARAMS(T)>,AUX778076_BIND_PARAMS(U) >
-{
- typedef bind<F,AUX778076_BIND_PARAMS(T)> f_;
- typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
-};
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// agurt, 15/jan/02: it's not a intended to be used as a function class, and
-// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't
-// work), so I went with the 'result_' here, and in all other similar cases
-template< bool >
-struct resolve_arg_impl
-{
- template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
- {
- typedef typename AUX778076_APPLY<
- T
- , AUX778076_BIND_PARAMS(U)
- >::type type;
- };
-};
-
-// for 'resolve_bind_arg'
-template< typename T > struct is_bind_template;
-
-template<
- typename T, AUX778076_BIND_PARAMS(typename U)
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,AUX778076_BIND_PARAMS(U) >
-{
-};
-
-# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
- template< typename Arg > struct result_
- {
- typedef Arg next;
- typedef T type;
- };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg<-1> >
-{
- template< typename Arg > struct result_
- {
- typedef typename next<Arg>::type next;
- typedef Arg type;
- };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
- : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-// agurt, 10/mar/02: the forward declaration has to appear before any of
-// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it
-template< BOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-// overload for "main" form
-// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload
-// in case if we use 'aux::type_wrapper< bind<...> >' here, and all
-// 'bind' instantiations form a complete type anyway
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
- typename F, AUX778076_BIND_PARAMS(typename T)
- >
-aux::yes_tag is_bind_helper(bind<F,AUX778076_BIND_PARAMS(T)>*);
-#endif
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/bind.hpp>))
-#include BOOST_PP_ITERATE()
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-/// if_/eval_if specializations
-# define AUX778076_SPEC_NAME if_
-# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <boost/mpl/bind.hpp>))
-# include BOOST_PP_ITERATE()
-
-#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-# define AUX778076_SPEC_NAME eval_if
-# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <boost/mpl/bind.hpp>))
-# include BOOST_PP_ITERATE()
-#endif
-#endif
-
-// real C++ version is already taken care of
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-
-namespace aux {
-// apply_count_args
-#define AUX778076_COUNT_ARGS_PREFIX bind
-#define AUX778076_COUNT_ARGS_DEFAULT na
-#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#include <boost/mpl/aux_/count_args.hpp>
-}
-
-// bind
-template<
- typename F, AUX778076_BIND_PARAMS(typename T) AUX778076_DMC_PARAM()
- >
-struct bind
- : aux::bind_chooser<
- aux::bind_count_args<AUX778076_BIND_PARAMS(T)>::value
- >::template result_< F,AUX778076_BIND_PARAMS(T) >::type
-{
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(
- BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
- , bind
- )
-
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
- BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
- , bind
- )
-
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-# undef AUX778076_BIND_NESTED_DEFAULT_PARAMS
-# undef AUX778076_BIND_N_SPEC_PARAMS
-# undef AUX778076_BIND_N_PARAMS
-# undef AUX778076_BIND_DEFAULT_PARAMS
-# undef AUX778076_BIND_PARAMS
-# undef AUX778076_DMC_PARAM
-# undef AUX778076_APPLY
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_BIND_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-
-# define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if defined(AUX778076_SPEC_NAME)
-
-// lazy metafunction specialization
-template< template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag >
-struct BOOST_PP_CAT(quote,i_);
-
-template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME;
-
-template<
- typename Tag AUX778076_BIND_N_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(bind,i_)<
- BOOST_PP_CAT(quote,i_)<AUX778076_SPEC_NAME,Tag>
- AUX778076_BIND_N_PARAMS(i_,T)
- >
-{
- template<
- AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
- >
- struct apply
- {
- private:
- typedef mpl::arg<1> n1;
-# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <boost/mpl/bind.hpp>))
-# include BOOST_PP_ITERATE()
-
- typedef typename AUX778076_SPEC_NAME<
- typename t1::type
- , BOOST_MPL_PP_EXT_PARAMS(2, BOOST_PP_INC(i_), t)
- >::type f_;
-
- public:
- typedef typename f_::type type;
- };
-};
-
-#undef AUX778076_SPEC_NAME
-
-#else // AUX778076_SPEC_NAME
-
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
- >
-struct BOOST_PP_CAT(bind,i_)
-{
- template<
- AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
- >
- struct apply
- {
- private:
-# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
- 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,AUX778076_BIND_PARAMS(U)>::type f_;
- ///
-# else
- typedef typename aux::resolve_bind_arg<F,AUX778076_BIND_PARAMS(U)>::type f_;
-
-# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-# if i_ > 0
-# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <boost/mpl/bind.hpp>))
-# include BOOST_PP_ITERATE()
-# endif
-
- public:
-
-# define AUX778076_ARG(unused, i_, t) \
- BOOST_PP_COMMA_IF(i_) \
- typename BOOST_PP_CAT(t,BOOST_PP_INC(i_))::type \
-/**/
-
- typedef typename BOOST_PP_CAT(apply_wrap,i_)<
- f_
- BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t)
- >::type type;
-
-# undef AUX778076_ARG
- };
-};
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U)
- >
-struct resolve_bind_arg<
- BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>,AUX778076_BIND_PARAMS(U)
- >
-{
- typedef BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)> f_;
- typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
-};
-
-#else
-
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T)
- >
-aux::yes_tag
-is_bind_helper(BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>*);
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
-
-# if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-/// primary template (not a specialization!)
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
- >
-struct bind
- : BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
-{
-};
-#else
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
- >
-struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) >
- : BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
-{
-};
-#endif
-
-# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace aux {
-
-template<>
-struct bind_chooser<i_>
-{
- template<
- typename F, AUX778076_BIND_PARAMS(typename T)
- >
- struct result_
- {
- typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type;
- };
-};
-
-} // namespace aux
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE
-
-#endif // AUX778076_SPEC_NAME
-
-# undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH == 2
-
-# define j_ BOOST_PP_FRAME_ITERATION(2)
-# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
- typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j_),BOOST_PP_CAT(n,j_) > BOOST_PP_CAT(r,j_);
- typedef typename BOOST_PP_CAT(r,j_)::type BOOST_PP_CAT(a,j_);
- typedef typename BOOST_PP_CAT(r,j_)::next BOOST_PP_CAT(n,BOOST_PP_INC(j_));
- typedef aux::resolve_bind_arg<BOOST_PP_CAT(a,j_), AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_);
- ///
-# else
- typedef aux::resolve_bind_arg< BOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_);
-
-# endif
-# undef j_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED
-#define BOOST_MPL_BIND_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bind_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/aux_/na.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/bind.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-
-# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-# define AUX778076_DMC_PARAM() , int dummy_ = 0
-# else
-# define AUX778076_DMC_PARAM()
-# endif
-
-# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
- BOOST_MPL_PP_DEFAULT_PARAMS( \
- BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
- , param \
- , value \
- ) \
- AUX778076_DMC_PARAM() \
- /**/
-
-# define AUX778076_BIND_N_PARAMS(n, param) \
- BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
- AUX778076_DMC_PARAM() \
- /**/
-
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
- typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na)
- >
-struct bind;
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/bind_fwd.hpp>))
-#include BOOST_PP_ITERATE()
-
-# undef AUX778076_BIND_N_PARAMS
-# undef AUX778076_BIND_DEFAULT_PARAMS
-# undef AUX778076_DMC_PARAM
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(bind,i_);
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_BITAND_HPP_INCLUDED
-#define BOOST_MPL_BITAND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bitand.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME bitand_
-#define AUX778076_OP_PREFIX bitand
-#define AUX778076_OP_TOKEN &
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_BITAND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BITOR_HPP_INCLUDED
-#define BOOST_MPL_BITOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bitor.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME bitor_
-#define AUX778076_OP_PREFIX bitor
-#define AUX778076_OP_TOKEN |
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_BITOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BITWISE_HPP_INCLUDED
-#define BOOST_MPL_BITWISE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bitwise.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/bitand.hpp>
-#include <boost/mpl/bitor.hpp>
-#include <boost/mpl/bitxor.hpp>
-#include <boost/mpl/shift_left.hpp>
-#include <boost/mpl/shift_right.hpp>
-
-#endif // BOOST_MPL_BITWISE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BITXOR_HPP_INCLUDED
-#define BOOST_MPL_BITXOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bitxor.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME bitxor_
-#define AUX778076_OP_PREFIX bitxor
-#define AUX778076_OP_TOKEN ^
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_BITXOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BOOL_HPP_INCLUDED
-#define BOOST_MPL_BOOL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bool.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/bool_fwd.hpp>
-#include <boost/mpl/integral_c_tag.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< bool C_ > struct bool_
-{
- BOOST_STATIC_CONSTANT(bool, value = C_);
- typedef integral_c_tag tag;
- typedef bool_ type;
- typedef bool value_type;
- operator bool() const { return this->value; }
-};
-
-#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-template< bool C_ >
-bool const bool_<C_>::value;
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#endif // BOOST_MPL_BOOL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED
-#define BOOST_MPL_BOOL_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/bool_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< bool C_ > struct bool_;
-
-// shorcuts
-typedef bool_<true> true_;
-typedef bool_<false> false_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_)
-BOOST_MPL_AUX_ADL_BARRIER_DECL(true_)
-BOOST_MPL_AUX_ADL_BARRIER_DECL(false_)
-
-#endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_CLEAR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/clear.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/aux_/clear_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct clear
- : clear_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, clear)
-
-}}
-
-#endif // BOOST_MPL_CLEAR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-#define BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/clear_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct clear_impl;
-template< typename Sequence > struct clear;
-
-}}
-
-#endif // BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED
-#define BOOST_MPL_COMPARISON_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/comparison.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/not_equal_to.hpp>
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/greater.hpp>
-#include <boost/mpl/less_equal.hpp>
-#include <boost/mpl/greater_equal.hpp>
-
-#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_CONTAINS_HPP_INCLUDED
-#define BOOST_MPL_CONTAINS_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/contains.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/contains_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/contains_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct contains
- : contains_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,T >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, contains)
-
-}}
-
-#endif // BOOST_MPL_CONTAINS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-#define BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/contains_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct contains_impl;
-template< typename Sequence, typename T > struct contains;
-
-}}
-
-#endif // BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_COPY_HPP_INCLUDED
-#define BOOST_MPL_COPY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/copy.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Sequence
- , typename Inserter
- >
-struct copy_impl
- : fold<
- Sequence
- , typename Inserter::state
- , typename Inserter::operation
- >
-{
-};
-
-template<
- typename Sequence
- , typename Inserter
- >
-struct reverse_copy_impl
- : reverse_fold<
- Sequence
- , typename Inserter::state
- , typename Inserter::operation
- >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy)
-
-}}
-
-#endif // BOOST_MPL_COPY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_COPY_IF_HPP_INCLUDED
-#define BOOST_MPL_COPY_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/copy_if.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/protect.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Operation
- , typename Predicate
- >
-struct copy_if_op
-{
- template< typename Sequence, typename T > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : eval_if<
- typename apply1<Predicate,T>::type
- , apply2<Operation,Sequence,T>
- , identity<Sequence>
- >
- {
-#else
- {
- typedef typename eval_if<
- typename apply1<Predicate,T>::type
- , apply2<Operation,Sequence,T>
- , identity<Sequence>
- >::type type;
-#endif
- };
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename Inserter
- >
-struct copy_if_impl
- : fold<
- Sequence
- , typename Inserter::state
- , protect< aux::copy_if_op<
- typename Inserter::operation
- , Predicate
- > >
- >
-{
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename Inserter
- >
-struct reverse_copy_if_impl
- : reverse_fold<
- Sequence
- , typename Inserter::state
- , protect< aux::copy_if_op<
- typename Inserter::operation
- , Predicate
- > >
- >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, copy_if)
-
-}}
-
-#endif // BOOST_MPL_COPY_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_COUNT_HPP_INCLUDED
-#define BOOST_MPL_COUNT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/count.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/count_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/count_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct count
- : count_impl< typename sequence_tag<Sequence>::type >
- ::template apply<Sequence,T>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count,(Sequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, count)
-
-}}
-
-#endif // BOOST_MPL_COUNT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_COUNT_FWD_HPP_INCLUDED
-#define BOOST_MPL_COUNT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/count_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct count_impl;
-template< typename Sequence, typename T > struct count;
-
-}}
-
-#endif // BOOST_MPL_COUNT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_COUNT_IF_HPP_INCLUDED
-#define BOOST_MPL_COUNT_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/count_if.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/integral_c.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Predicate >
-struct next_if
-{
- template<
- typename N
- , typename T
- >
- struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : eval_if<
- typename apply1<Predicate,T>::type
- , next<N>
- , identity<N>
- >
- {
-#else
- {
- typedef typename eval_if<
- typename apply1<Predicate,T>::type
- , next<N>
- , identity<N>
- >::type type;
-#endif
- };
-};
-
-} // namespace aux
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Predicate)
- >
-struct count_if
- : aux::msvc_eti_base< typename fold<
- Sequence
- , integral_c<unsigned long,0>
- , protect< aux::next_if<Predicate> >
- >::type >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count_if,(Sequence,Predicate))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, count_if)
-
-}}
-
-#endif // BOOST_MPL_COUNT_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_DEQUE_HPP_INCLUDED
-#define BOOST_MPL_DEQUE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/deque.hpp,v $
-// $Date: 2004/11/28 01:53:40 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/vector.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_DEQUE_HEADER \
- BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
- /**/
-#else
-# define AUX778076_DEQUE_HEADER \
- BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_DEQUE_HEADER)
-# undef AUX778076_DEQUE_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER deque.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/vector.hpp>
-
-# define AUX778076_SEQUENCE_NAME deque
-# define AUX778076_SEQUENCE_BASE_NAME vector
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_DEQUE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_DEREF_HPP_INCLUDED
-#define BOOST_MPL_DEREF_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/deref.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/msvc_type.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Iterator)
- >
-struct deref
-{
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
- typedef typename Iterator::type type;
-#else
- typedef typename aux::msvc_type<Iterator>::type type;
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, deref)
-
-}}
-
-#endif // BOOST_MPL_DEREF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_DISTANCE_HPP_INCLUDED
-#define BOOST_MPL_DISTANCE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/distance.hpp,v $
-// $Date: 2005/01/26 01:58:33 $
-// $Revision: 1.10 $
-
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/iter_fold.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/tag.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-
-namespace boost { namespace mpl {
-
-// default implementation for forward/bidirectional iterators
-template< typename Tag > struct distance_impl
-{
- template< typename First, typename Last > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : aux::msvc_eti_base< typename iter_fold<
- iterator_range<First,Last>
- , mpl::long_<0>
- , next<>
- >::type >
- {
-#else
- {
- typedef typename iter_fold<
- iterator_range<First,Last>
- , mpl::long_<0>
- , next<>
- >::type type;
-
- BOOST_STATIC_CONSTANT(long, value =
- (iter_fold<
- iterator_range<First,Last>
- , mpl::long_<0>
- , next<>
- >::type::value)
- );
-#endif
- };
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(First)
- , typename BOOST_MPL_AUX_NA_PARAM(Last)
- >
-struct distance
- : distance_impl< typename tag<First>::type >
- ::template apply<First, Last>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, distance, (First, Last))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, distance)
-
-}}
-
-#endif // BOOST_MPL_DISTANCE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-#define BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/distance_fwd.hpp,v $
-// $Date: 2004/11/28 01:53:40 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(distance)
-
-template< typename Tag > struct distance_impl;
-template< typename First, typename Last > struct distance;
-
-}}
-
-#endif // BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_DIVIDES_HPP_INCLUDED
-#define BOOST_MPL_DIVIDES_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/divides.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME divides
-#define AUX778076_OP_TOKEN /
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_DIVIDES_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/empty.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/empty_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct empty
- : empty_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,empty,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, empty)
-
-}}
-
-#endif // BOOST_MPL_EMPTY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/empty_base.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/type_traits/is_empty.hpp>
-
-// should be always the last #include directive
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost { namespace mpl {
-
-// empty base class, guaranteed to have no members; inheritance from
-// 'empty_base' through the 'inherit' metafunction is a no-op - see
-// "mpl/inherit.hpp> header for the details
-struct empty_base {};
-
-template< typename T >
-struct is_empty_base
- : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using false_::value;
-#endif
-};
-
-template<>
-struct is_empty_base<empty_base>
- : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using true_::value;
-#endif
-};
-
-}}
-
-namespace boost {
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_empty, mpl::empty_base, true)
-}
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/empty_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct empty_impl;
-template< typename Sequence > struct empty;
-
-}}
-
-#endif // BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EMPTY_SEQUENCE_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_SEQUENCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-// Copyright Alexander Nasonov 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/empty_sequence.hpp,v $
-// $Date: 2004/11/28 01:53:40 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-
-namespace boost { namespace mpl {
-
-struct empty_sequence
-{
- struct tag;
- struct begin { typedef random_access_iterator_tag category; };
- typedef begin end;
-};
-
-template<>
-struct size_impl<empty_sequence::tag>
-{
- template< typename Sequence > struct apply
- : int_<0>
- {
- };
-};
-
-}}
-
-#endif // #ifndef BOOST_MPL_EMPTY_SEQUENCE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_END_HPP_INCLUDED
-#define BOOST_MPL_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/end.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/begin_end.hpp>
-
-#endif // BOOST_MPL_END_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_EQUAL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/equal.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/aux_/iter_fold_if_impl.hpp>
-#include <boost/mpl/aux_/iter_apply.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/bind.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Predicate
- , typename LastIterator1
- , typename LastIterator2
- >
-struct equal_pred
-{
- template<
- typename Iterator2
- , typename Iterator1
- >
- struct apply
- {
- typedef typename and_<
- not_< is_same<Iterator1,LastIterator1> >
- , not_< is_same<Iterator2,LastIterator2> >
- , aux::iter_apply2<Predicate,Iterator1,Iterator2>
- >::type type;
- };
-};
-
-template<
- typename Sequence1
- , typename Sequence2
- , typename Predicate
- >
-struct equal_impl
-{
- typedef typename begin<Sequence1>::type first1_;
- typedef typename begin<Sequence2>::type first2_;
- typedef typename end<Sequence1>::type last1_;
- typedef typename end<Sequence2>::type last2_;
-
- typedef aux::iter_fold_if_impl<
- first1_
- , first2_
- , next<>
- , protect< aux::equal_pred<Predicate,last1_,last2_> >
- , void_
- , always<false_>
- > fold_;
-
- typedef typename fold_::iterator iter1_;
- typedef typename fold_::state iter2_;
- typedef and_<
- is_same<iter1_,last1_>
- , is_same<iter2_,last2_>
- > result_;
-
- typedef typename result_::type type;
-};
-
-
-} // namespace aux
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence1)
- , typename BOOST_MPL_AUX_NA_PARAM(Sequence2)
- , typename Predicate = is_same<_,_>
- >
-struct equal
- : aux::msvc_eti_base<
- typename aux::equal_impl<Sequence1,Sequence2,Predicate>::type
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,equal,(Sequence1,Sequence2))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, equal)
-
-}}
-
-#endif // BOOST_MPL_EQUAL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED
-#define BOOST_MPL_EQUAL_TO_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/equal_to.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME equal_to
-#define AUX778076_OP_TOKEN ==
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_EQUAL_TO_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ERASE_HPP_INCLUDED
-#define BOOST_MPL_ERASE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/erase.hpp,v $
-// $Date: 2004/11/28 01:54:10 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/erase_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/erase_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/msvc_typename.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(First)
- , typename BOOST_MPL_AUX_NA_PARAM(Last)
- >
-struct erase
- : erase_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,First,Last >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,erase,(Sequence,First,Last))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3,erase)
-
-}}
-
-#endif // BOOST_MPL_ERASE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ERASE_FWD_HPP_INCLUDED
-#define BOOST_MPL_ERASE_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/erase_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct erase_impl;
-template< typename Sequence, typename First, typename Last > struct erase;
-
-}}
-
-#endif // BOOST_MPL_ERASE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ERASE_KEY_HPP_INCLUDED
-#define BOOST_MPL_ERASE_KEY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/erase_key.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/erase_key_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/erase_key_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/msvc_typename.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Key)
- >
-struct erase_key
- : erase_key_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,Key >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,erase_key,(Sequence,Key))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2,erase_key)
-
-}}
-
-#endif // BOOST_MPL_ERASE_KEY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED
-#define BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/erase_key_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct erase_key_impl;
-template< typename Sequence, typename Key > struct erase_key;
-
-}}
-
-#endif // BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED
-#define BOOST_MPL_EVAL_IF_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/eval_if.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(C)
- , typename BOOST_MPL_AUX_NA_PARAM(F1)
- , typename BOOST_MPL_AUX_NA_PARAM(F2)
- >
-struct eval_if
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
- && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
- )
-{
- typedef typename if_<C,F1,F2>::type f_;
- typedef typename f_::type type;
-#else
- : if_<C,F1,F2>::type
-{
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
-};
-
-// (almost) copy & paste in order to save one more
-// recursively nested template instantiation to user
-template<
- bool C
- , typename F1
- , typename F2
- >
-struct eval_if_c
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
- || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
- && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
- )
-{
- typedef typename if_c<C,F1,F2>::type f_;
- typedef typename f_::type type;
-#else
- : if_c<C,F1,F2>::type
-{
-#endif
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, eval_if)
-
-}}
-
-#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FILTER_VIEW_HPP_INCLUDED
-#define BOOST_MPL_FILTER_VIEW_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/filter_view.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/filter_iter.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Predicate)
- >
-struct filter_view
-{
- private:
- typedef typename lambda<Predicate>::type pred_;
- typedef typename begin<Sequence>::type first_;
- typedef typename end<Sequence>::type last_;
-
- public:
- struct tag;
- typedef filter_view type;
- typedef typename aux::next_filter_iter< first_,last_,pred_ >::type begin;
- typedef aux::filter_iter< last_,last_,pred_ > end;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, filter_view)
-
-}}
-
-#endif // BOOST_MPL_FILTER_VIEW_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FIND_HPP_INCLUDED
-#define BOOST_MPL_FIND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/find.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/find_if.hpp>
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct find
- : find_if< Sequence,same_as<T> >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, find)
-
-}}
-
-#endif // BOOST_MPL_FIND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FIND_IF_HPP_INCLUDED
-#define BOOST_MPL_FIND_IF_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/find_if.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.10 $
-
-#include <boost/mpl/aux_/find_if_pred.hpp>
-#include <boost/mpl/arg.hpp>
-#include <boost/mpl/iter_fold_if.hpp>
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(find_if)
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Predicate)
- >
-struct find_if
-{
- typedef typename iter_fold_if<
- Sequence
- , void
- , arg<1> // ignore
- , protect< aux::find_if_pred<Predicate> >
- >::type result_;
-
- typedef typename second<result_>::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2,find_if)
-
-}}
-
-#endif // BOOST_MPL_FIND_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FOLD_HPP_INCLUDED
-#define BOOST_MPL_FOLD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/fold.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/aux_/fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(State)
- , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
- >
-struct fold
-{
- typedef typename aux::fold_impl<
- ::boost::mpl::O1_size<Sequence>::value
- , typename begin<Sequence>::type
- , typename end<Sequence>::type
- , State
- , ForwardOp
- >::state type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, fold)
-
-}}
-
-#endif // BOOST_MPL_FOLD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FOR_EACH_HPP_INCLUDED
-#define BOOST_MPL_FOR_EACH_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/for_each.hpp,v $
-// $Date: 2004/09/04 01:33:46 $
-// $Revision: 1.9 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/aux_/unwrap.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/utility/value_init.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool done = true >
-struct for_each_impl
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename TransformFunc
- , typename F
- >
- static void execute(
- Iterator*
- , LastIterator*
- , TransformFunc*
- , F
- )
- {
- }
-};
-
-template<>
-struct for_each_impl<false>
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename TransformFunc
- , typename F
- >
- static void execute(
- Iterator*
- , LastIterator*
- , TransformFunc*
- , F f
- )
- {
- typedef typename deref<Iterator>::type item;
- typedef typename apply1<TransformFunc,item>::type arg;
-
- // dwa 2002/9/10 -- make sure not to invoke undefined behavior
- // when we pass arg.
- value_initialized<arg> x;
- aux::unwrap(f, 0)(boost::get(x));
-
- typedef typename mpl::next<Iterator>::type iter;
- for_each_impl<boost::is_same<iter,LastIterator>::value>
- ::execute((iter*)0, (LastIterator*)0, (TransformFunc*)0, f);
- }
-};
-
-} // namespace aux
-
-// agurt, 17/mar/02: pointer default parameters are necessary to workaround
-// MSVC 6.5 function template signature's mangling bug
-template<
- typename Sequence
- , typename TransformOp
- , typename F
- >
-inline
-void for_each(F f, Sequence* = 0, TransformOp* = 0)
-{
- typedef typename begin<Sequence>::type first;
- typedef typename end<Sequence>::type last;
-
- aux::for_each_impl< boost::is_same<first,last>::value >
- ::execute((first*)0, (last*)0, (TransformOp*)0, f);
-}
-
-template<
- typename Sequence
- , typename F
- >
-inline
-void for_each(F f, Sequence* = 0)
-{
- for_each<Sequence, identity<> >(f);
-}
-
-}}
-
-#endif // BOOST_MPL_FOR_EACH_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FRONT_HPP_INCLUDED
-#define BOOST_MPL_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/front.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/aux_/front_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct front
- : front_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,front,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, front)
-
-}}
-
-#endif // BOOST_MPL_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_FRONT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/front_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct front_impl;
-template< typename Sequence > struct front;
-
-}}
-
-#endif // BOOST_MPL_FRONT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/front_inserter.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/inserter.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename Sequence
- >
-struct front_inserter
- : inserter< Sequence,push_front<> >
-{
-};
-
-}}
-
-#endif // BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_GREATER_HPP_INCLUDED
-#define BOOST_MPL_GREATER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/greater.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME greater
-#define AUX778076_OP_TOKEN >
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_GREATER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/greater_equal.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME greater_equal
-#define AUX778076_OP_TOKEN >=
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_HAS_KEY_HPP_INCLUDED
-#define BOOST_MPL_HAS_KEY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/has_key.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/has_key_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/has_key_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Key)
- >
-struct has_key
- : has_key_impl< typename sequence_tag<AssociativeSequence>::type >
- ::template apply<AssociativeSequence,Key>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,has_key,(AssociativeSequence,Key))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, has_key)
-
-}}
-
-#endif // BOOST_MPL_HAS_KEY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED
-#define BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/has_key_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct has_key_impl;
-template< typename AssociativeSequence, typename Key > struct has_key;
-
-}}
-
-#endif // BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED
-#define BOOST_MPL_HAS_XXX_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-// Copyright David Abrahams 2002-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/has_xxx.hpp,v $
-// $Date: 2005/06/15 10:43:23 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/config/has_xxx.hpp>
-#include <boost/mpl/aux_/config/msvc_typename.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX)
-
-# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-// agurt, 11/sep/02: MSVC-specific version (< 7.1), based on a USENET
-// newsgroup's posting by John Madsen (comp.lang.c++.moderated,
-// 1999-11-12 19:17:06 GMT); the code is _not_ standard-conforming, but
-// it works way more reliably than the SFINAE-based implementation
-
-// Modified dwa 8/Oct/02 to handle reference types.
-
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/bool.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-struct has_xxx_tag;
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-template< typename U > struct msvc_incomplete_array
-{
- typedef char (&type)[sizeof(U) + 1];
-};
-#endif
-
-template< typename T >
-struct msvc_is_incomplete
-{
- // MSVC is capable of some kinds of SFINAE. If U is an incomplete
- // type, it won't pick the second overload
- static char tester(...);
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- template< typename U >
- static typename msvc_incomplete_array<U>::type tester(type_wrapper<U>);
-#else
- template< typename U >
- static char (& tester(type_wrapper<U>) )[sizeof(U)+1];
-#endif
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(tester(type_wrapper<T>())) == 1
- );
-};
-
-template<>
-struct msvc_is_incomplete<int>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-}}}
-
-# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \
-template< typename T, typename name = ::boost::mpl::aux::has_xxx_tag > \
-struct BOOST_PP_CAT(trait,_impl) : T \
-{ \
- static boost::mpl::aux::no_tag \
- test(void(*)(::boost::mpl::aux::has_xxx_tag)); \
- \
- static boost::mpl::aux::yes_tag test(...); \
- \
- BOOST_STATIC_CONSTANT(bool, value = \
- sizeof(test(static_cast<void(*)(name)>(0))) \
- != sizeof(boost::mpl::aux::no_tag) \
- ); \
- typedef boost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
- : boost::mpl::if_c< \
- boost::mpl::aux::msvc_is_incomplete<T>::value \
- , boost::mpl::bool_<false> \
- , BOOST_PP_CAT(trait,_impl)<T> \
- >::type \
-{ \
-}; \
-\
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, void) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, bool) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed short) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned short) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed int) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned int) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed long) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned long) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, float) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, double) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, long double) \
-/**/
-
-# define BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \
-template<> struct trait<T> \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = false); \
- typedef boost::mpl::bool_<false> type; \
-}; \
-/**/
-
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
- BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
- BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, wchar_t) \
-/**/
-#else
-# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
- BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
-/**/
-#endif
-
-
-// SFINAE-based implementations below are derived from a USENET newsgroup's
-// posting by Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST)
-
-# elif BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400))
-
-// MSVC 7.1+
-
-// agurt, 15/jun/05: replace overload-based SFINAE implementation with SFINAE
-// applied to partial specialization to fix some apparently random failures
-// (thanks to Daniel Wallin for researching this!)
-
-namespace boost { namespace mpl { namespace aux {
-template< typename T > struct msvc71_sfinae_helper { typedef void type; };
-}}}
-
-# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename U = void > \
-struct BOOST_PP_CAT(trait,_impl_) \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = false); \
- typedef boost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T > \
-struct BOOST_PP_CAT(trait,_impl_)< \
- T \
- , typename boost::mpl::aux::msvc71_sfinae_helper< typename T::name >::type \
- > \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = true); \
- typedef boost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
- : BOOST_PP_CAT(trait,_impl_)<T> \
-{ \
-}; \
-/**/
-
-# else // other SFINAE-capable compilers
-
-# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
-{ \
- struct gcc_3_2_wknd \
- { \
- template< typename U > \
- static boost::mpl::aux::yes_tag test( \
- boost::mpl::aux::type_wrapper<U> const volatile* \
- , boost::mpl::aux::type_wrapper<BOOST_MSVC_TYPENAME U::name>* = 0 \
- ); \
- \
- static boost::mpl::aux::no_tag test(...); \
- }; \
- \
- typedef boost::mpl::aux::type_wrapper<T> t_; \
- BOOST_STATIC_CONSTANT(bool, value = \
- sizeof(gcc_3_2_wknd::test(static_cast<t_*>(0))) \
- == sizeof(boost::mpl::aux::yes_tag) \
- ); \
- typedef boost::mpl::bool_<value> type; \
-}; \
-/**/
-
-# endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-
-#else // BOOST_MPL_CFG_NO_HAS_XXX
-
-// placeholder implementation
-
-# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
- typedef fallback_ type; \
-}; \
-/**/
-
-#endif
-
-#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \
- BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(has_,name), name, false) \
-/**/
-
-#endif // BOOST_MPL_HAS_XXX_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED
-#define BOOST_MPL_IDENTITY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/identity.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct identity
-{
- typedef T type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T))
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct make_identity
-{
- typedef identity<T> type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T))
-};
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity)
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity)
-
-}}
-
-#endif // BOOST_MPL_IDENTITY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_IF_HPP_INCLUDED
-#define BOOST_MPL_IF_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/if.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- bool C
- , typename T1
- , typename T2
- >
-struct if_c
-{
- typedef T1 type;
-};
-
-template<
- typename T1
- , typename T2
- >
-struct if_c<false,T1,T2>
-{
- typedef T2 type;
-};
-
-// agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars
-// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- , typename BOOST_MPL_AUX_NA_PARAM(T3)
- >
-struct if_
-{
- private:
- // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC
- typedef if_c<
-#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS)
- BOOST_MPL_AUX_VALUE_WKND(T1)::value
-#else
- BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
-#endif
- , T2
- , T3
- > almost_type_;
-
- public:
- typedef typename almost_type_::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
-};
-
-#else
-
-// no partial class template specialization
-
-namespace aux {
-
-template< bool C >
-struct if_impl
-{
- template< typename T1, typename T2 > struct result_
- {
- typedef T1 type;
- };
-};
-
-template<>
-struct if_impl<false>
-{
- template< typename T1, typename T2 > struct result_
- {
- typedef T2 type;
- };
-};
-
-} // namespace aux
-
-template<
- bool C_
- , typename T1
- , typename T2
- >
-struct if_c
-{
- typedef typename aux::if_impl< C_ >
- ::template result_<T1,T2>::type type;
-};
-
-// (almost) copy & paste in order to save one more
-// recursively nested template instantiation to user
-template<
- typename BOOST_MPL_AUX_NA_PARAM(C_)
- , typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct if_
-{
- enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
-
- typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
- ::template result_<T1,T2>::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_MPL_AUX_NA_SPEC(3, if_)
-
-}}
-
-#endif // BOOST_MPL_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INDEX_IF_HPP_INCLUDED
-#define BOOST_MPL_INDEX_IF_HPP_INCLUDED
-
-// Copyright Eric Friedman 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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/index_if.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/aux_/find_if_pred.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/iter_fold_if.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Predicate)
- >
-struct index_if
-{
- typedef typename iter_fold_if<
- Sequence
- , int_<0>
- , next<>
- , aux::find_if_pred<Predicate>
- >::type result_;
-
- typedef typename end<Sequence>::type not_found_;
- typedef typename first<result_>::type result_index_;
- typedef typename second<result_>::type result_iterator_;
-
- typedef typename if_<
- is_same< result_iterator_,not_found_ >
- , void_
- , result_index_
- >::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,index_if,(Sequence,Predicate))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, index_if)
-
-}}
-
-#endif // BOOST_MPL_INDEX_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INDEX_OF_HPP_INCLUDED
-#define BOOST_MPL_INDEX_OF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright Eric Friedman 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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/index_of.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/index_if.hpp>
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct index_of
- : index_if< Sequence,same_as<T> >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,index_of,(Sequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, index_of)
-
-}}
-
-#endif // BOOST_MPL_INDEX_OF_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_INHERIT_HPP_INCLUDED
-#define BOOST_MPL_INHERIT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/inherit.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/empty_base.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER inherit.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/preprocessor/default_params.hpp>
-# include <boost/mpl/aux_/preprocessor/enum.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/dtp.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/dec.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// 'inherit<T1,T2,..,Tn>' metafunction; returns an unspecified class type
-// produced by public derivation from all metafunction's parameters
-// (T1,T2,..,Tn), except the parameters of 'empty_base' class type;
-// regardless the position and number of 'empty_base' parameters in the
-// metafunction's argument list, derivation from them is always a no-op;
-// for instance:
-// inherit<her>::type == her
-// inherit<her,my>::type == struct unspecified : her, my {};
-// inherit<empty_base,her>::type == her
-// inherit<empty_base,her,empty_base,empty_base>::type == her
-// inherit<her,empty_base,my>::type == struct unspecified : her, my {};
-// inherit<empty_base,empty_base>::type == empty_base
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-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))
-};
-
-// needed to disambiguate the previous two in case when both
-// T1 and T2 == empty_base
-template<>
-struct inherit2<empty_base,empty_base>
-{
- typedef empty_base type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base,empty_base))
-};
-
-#else
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1, T2
- {
- typedef Derived type_;
- };
-};
-
-template<>
-struct inherit2_impl<false,true>
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1
- {
- typedef T1 type_;
- };
-};
-
-template<>
-struct inherit2_impl<true,false>
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T2
- {
- typedef T2 type_;
- };
-};
-
-template<>
-struct inherit2_impl<true,true>
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- {
- typedef T1 type_;
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct inherit2
- : aux::inherit2_impl<
- is_empty_base<T1>::value
- , is_empty_base<T2>::value
- >::template result_< inherit2<T1,T2>,T1,T2 >
-{
- typedef typename inherit2::type_ type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1,T2))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(3, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/inherit.hpp>))
-#include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_INHERIT_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define n_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, na)
- >
-struct BOOST_PP_CAT(inherit,n_)
- : inherit2<
- typename BOOST_PP_CAT(inherit,BOOST_PP_DEC(n_))<
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(n_), T)
- >::type
- , BOOST_PP_CAT(T,n_)
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- n_
- , BOOST_PP_CAT(inherit,n_)
- , (BOOST_MPL_PP_PARAMS(n_, T))
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC(n_, BOOST_PP_CAT(inherit,n_))
-
-#if n_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-/// primary template
-template<
- BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, empty_base)
- >
-struct inherit
- : BOOST_PP_CAT(inherit,n_)<BOOST_MPL_PP_PARAMS(n_, T)>
-{
-};
-
-// 'na' specialization
-template<>
-struct inherit< BOOST_MPL_PP_ENUM(5, na) >
-{
- template<
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
- BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, empty_base)
-#else
- BOOST_MPL_PP_PARAMS(n_, typename T)
-#endif
- >
- struct apply
- : inherit< BOOST_MPL_PP_PARAMS(n_, T) >
- {
- };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(n_, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(n_, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(n_, n_, inherit)
-#endif
-
-#undef n_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_INHERIT_FRONT_TO_BACK_HPP_INCLUDED
-#define BOOST_MPL_INHERIT_FRONT_TO_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/inherit_linearly.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/empty_base.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Types_)
- , typename BOOST_MPL_AUX_NA_PARAM(Node_)
- , typename Root_ = empty_base
- >
-struct inherit_linearly
- : fold<Types_,Root_,Node_>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,inherit_linearly,(Types_,Node_,Root_))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit_linearly)
-
-}}
-
-#endif // BOOST_MPL_INHERIT_FRONT_TO_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INSERT_HPP_INCLUDED
-#define BOOST_MPL_INSERT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/insert.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/insert_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/insert_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Pos_or_T)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct insert
- : insert_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,Pos_or_T,T >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert,(Sequence,Pos_or_T,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, insert)
-
-}}
-
-#endif // BOOST_MPL_INSERT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INSERT_FWD_HPP_INCLUDED
-#define BOOST_MPL_INSERT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/insert_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct insert_impl;
-template< typename Sequence, typename Pos_or_T, typename T > struct insert;
-
-}}
-
-#endif // BOOST_MPL_INSERT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INSERT_RANGE_HPP_INCLUDED
-#define BOOST_MPL_INSERT_RANGE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/insert_range.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/insert_range_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/insert_range_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Pos)
- , typename BOOST_MPL_AUX_NA_PARAM(Range)
- >
-struct insert_range
- : insert_range_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,Pos,Range >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert_range,(Sequence,Pos,Range))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, insert_range)
-
-}}
-
-#endif // BOOST_MPL_INSERT_RANGE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED
-#define BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/insert_range_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct insert_range_impl;
-template< typename Sequence, typename Pos, typename Range > struct insert_range;
-
-}}
-
-#endif // BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/inserter.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl {
-
-template<
- typename Sequence
- , typename Operation
- >
-struct inserter
-{
- typedef Sequence state;
- typedef Operation operation;
-};
-
-}}
-
-#endif // BOOST_MPL_INSERTER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INT_HPP_INCLUDED
-#define BOOST_MPL_INT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/int.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/int_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE int
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // BOOST_MPL_INT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED
-#define BOOST_MPL_INT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/int_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#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(int, N) > struct int_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(int_)
-
-#endif // BOOST_MPL_INT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/integral_c.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/integral_c_fwd.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
-// the type of non-type template arguments may not depend on template arguments
-# define AUX_WRAPPER_PARAMS(N) typename T, long N
-#else
-# define AUX_WRAPPER_PARAMS(N) typename T, T N
-#endif
-
-#define AUX_WRAPPER_NAME integral_c
-#define AUX_WRAPPER_VALUE_TYPE T
-#define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value >
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-// 'bool' constant doesn't have 'next'/'prior' members
-template< bool C >
-struct integral_c<bool, C>
-{
- BOOST_STATIC_CONSTANT(bool, value = C);
- typedef integral_c_tag tag;
- typedef integral_c type;
- typedef bool value_type;
- operator bool() const { return this->value; }
-};
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-#endif
-
-#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/integral_c_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-#if BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
-// the type of non-type template arguments may not depend on template arguments
-template< typename T, long N > struct integral_c;
-#else
-template< typename T, T N > struct integral_c;
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c)
-
-#endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/integral_c_tag.hpp,v $
-// $Date$
-// $Revision$
-
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); };
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag)
-
-#endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-#define BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/is_placeholder.hpp,v $
-// $Date: 2004/09/07 08:51:31 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/arg_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename T >
-struct is_placeholder
- : bool_<false>
-{
-};
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct is_placeholder< arg<N> >
- : bool_<true>
-{
-};
-
-#else
-
-namespace aux {
-
-aux::no_tag is_placeholder_helper(...);
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-aux::yes_tag is_placeholder_helper(aux::type_wrapper< arg<N> >*);
-
-} // namespace aux
-
-template< typename T >
-struct is_placeholder
-{
- static aux::type_wrapper<T>* get();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_placeholder_helper(get())) == sizeof(aux::yes_tag)
- );
-
- typedef bool_<value> type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}
-
-#endif // BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-#define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/is_sequence.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/has_tag.hpp>
-#include <boost/mpl/aux_/has_begin.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
-# include <boost/mpl/aux_/msvc_is_class.hpp>
-#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-# include <boost/type_traits/is_class.hpp>
-#endif
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-namespace aux {
-
-// agurt, 11/jun/03:
-// MSVC 6.5/7.0 fails if 'has_begin' is instantiated on a class type that has a
-// 'begin' member that doesn't name a type; e.g. 'has_begin< std::vector<int> >'
-// would fail; requiring 'T' to have _both_ 'tag' and 'begin' members workarounds
-// the issue for most real-world cases
-template< typename T > struct is_sequence_impl
- : and_<
- identity< aux::has_tag<T> >
- , identity< aux::has_begin<T> >
- >
-{
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct is_sequence
- : if_<
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- aux::msvc_is_class<T>
-#else
- boost::is_class<T>
-#endif
- , aux::is_sequence_impl<T>
- , bool_<false>
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
-};
-
-#elif defined(BOOST_MPL_CFG_NO_HAS_XXX)
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct is_sequence
- : bool_<false>
-{
-};
-
-#else
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct is_sequence
- : not_< is_same< typename begin<T>::type, void_ > >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
-};
-
-#endif // BOOST_MSVC
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-template<> struct is_sequence<int>
- : bool_<false>
-{
-};
-#endif
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence)
-
-}}
-
-#endif // BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITER_FOLD_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/iter_fold.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/iter_fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(State)
- , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
- >
-struct iter_fold
-{
- typedef typename aux::iter_fold_impl<
- ::boost::mpl::O1_size<Sequence>::value
- , typename begin<Sequence>::type
- , typename end<Sequence>::type
- , State
- , typename lambda<ForwardOp>::type
- >::state type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, iter_fold)
-
-}}
-
-#endif // BOOST_MPL_ITER_FOLD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright Eric Friedman 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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/iter_fold_if.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/logical.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/iter_fold_if_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Predicate, typename LastIterator >
-struct iter_fold_if_pred
-{
- template< typename State, typename Iterator > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : and_<
- not_< is_same<Iterator,LastIterator> >
- , apply1<Predicate,Iterator>
- >
- {
-#else
- {
- typedef and_<
- not_< is_same<Iterator,LastIterator> >
- , apply1<Predicate,Iterator>
- > type;
-#endif
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(State)
- , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
- , typename BOOST_MPL_AUX_NA_PARAM(ForwardPredicate)
- , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
- , typename BOOST_MPL_AUX_NA_PARAM(BackwardPredicate)
- >
-struct iter_fold_if
-{
-
- typedef typename begin<Sequence>::type first_;
- typedef typename end<Sequence>::type last_;
-
- typedef typename eval_if<
- is_na<BackwardPredicate>
- , if_< is_na<BackwardOp>, always<false_>, always<true_> >
- , identity<BackwardPredicate>
- >::type backward_pred_;
-
-// cwpro8 doesn't like 'cut-off' type here (use typedef instead)
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
- struct result_ :
-#else
- typedef
-#endif
- aux::iter_fold_if_impl<
- first_
- , State
- , ForwardOp
- , protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > >
- , BackwardOp
- , backward_pred_
- >
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
- { };
-#else
- result_;
-#endif
-
-public:
-
- typedef pair<
- typename result_::state
- , typename result_::iterator
- > type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 6
- , iter_fold_if
- , (Sequence,State,ForwardOp,ForwardPredicate,BackwardOp,BackwardPredicate)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC(6, iter_fold_if)
-
-}}
-
-#endif // BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/iterator_category.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Iterator)
- >
-struct iterator_category
-{
- typedef typename Iterator::category type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,iterator_category,(Iterator))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, iterator_category)
-
-}}
-
-#endif // BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/iterator_range.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-struct iterator_range_tag;
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(First)
- , typename BOOST_MPL_AUX_NA_PARAM(Last)
- >
-struct iterator_range
-{
- typedef iterator_range_tag tag;
- typedef iterator_range type;
- typedef First begin;
- typedef Last end;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, iterator_range)
-
-}}
-
-#endif // BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/iterator_tags.hpp,v $
-// $Date: 2004/11/28 01:54:51 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace mpl {
-
-struct forward_iterator_tag : int_<0> { typedef forward_iterator_tag type; };
-struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; };
-struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; };
-
-}}
-
-#endif // BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED
-#define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/joint_view.hpp,v $
-// $Date: 2004/10/02 19:08:57 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/aux_/joint_iter.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-struct joint_view_tag;
-}
-
-template<>
-struct size_impl< aux::joint_view_tag >
-{
- template < typename JointView > struct apply
- : plus<
- size<typename JointView::sequence1_>
- , size<typename JointView::sequence2_>
- >
- {};
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence1_)
- , typename BOOST_MPL_AUX_NA_PARAM(Sequence2_)
- >
-struct joint_view
-{
- typedef typename mpl::begin<Sequence1_>::type first1_;
- typedef typename mpl::end<Sequence1_>::type last1_;
- typedef typename mpl::begin<Sequence2_>::type first2_;
- typedef typename mpl::end<Sequence2_>::type last2_;
-
- // agurt, 25/may/03: for the 'size_traits' implementation above
- typedef Sequence1_ sequence1_;
- typedef Sequence2_ sequence2_;
-
- typedef joint_view type;
- typedef aux::joint_view_tag tag;
- typedef joint_iter<first1_,last1_,first2_> begin;
- typedef joint_iter<last1_,last1_,last2_> end;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, joint_view)
-
-}}
-
-#endif // BOOST_MPL_JOINT_VIEW_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_KEY_TYPE_HPP_INCLUDED
-#define BOOST_MPL_KEY_TYPE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/key_type.hpp,v $
-// $Date: 2004/12/14 22:34:44 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/key_type_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct key_type
- : apply_wrap2<
- key_type_impl< typename sequence_tag<AssociativeSequence>::type >
- , AssociativeSequence, T>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,key_type,(AssociativeSequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, key_type)
-
-}}
-
-#endif // BOOST_MPL_KEY_TYPE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED
-#define BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/key_type_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct key_type_impl;
-template< typename AssociativeSequence, typename T > struct key_type;
-
-}}
-
-#endif // BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_LAMBDA_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/lambda.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/lambda_fwd.hpp>
-#include <boost/mpl/bind.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-# include <boost/mpl/aux_/full_lambda.hpp>
-#else
-# include <boost/mpl/aux_/lambda_no_ctps.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-# define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
-#endif
-
-#endif // BOOST_MPL_LAMBDA_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/lambda_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/void_fwd.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-# include <boost/mpl/int.hpp>
-# include <boost/mpl/aux_/lambda_arity_param.hpp>
-# include <boost/mpl/aux_/template_arity_fwd.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename T = na
- , typename Tag = void_
- BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(
- typename Arity = int_< aux::template_arity<T>::value >
- )
- >
-struct lambda;
-
-}}
-
-#else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-# include <boost/mpl/bool.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename T = na
- , typename Tag = void_
- , typename Protect = true_
- >
-struct lambda;
-
-}}
-
-#endif
-
-#endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LESS_HPP_INCLUDED
-#define BOOST_MPL_LESS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/less.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#define AUX778076_OP_NAME less
-#define AUX778076_OP_TOKEN <
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_LESS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/less_equal.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME less_equal
-#define AUX778076_OP_TOKEN <=
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/arity.hpp,v $
-// $Date$
-// $Revision$
-
-#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-# define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5
-#endif
-
-#endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/list.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.4 $
-
-#if !defined(BOOST_MPL_LIMIT_LIST_SIZE)
-# define BOOST_MPL_LIMIT_LIST_SIZE 20
-#endif
-
-#endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIMITS_MAP_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_MAP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/map.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_LIMIT_MAP_SIZE)
-# define BOOST_MPL_LIMIT_MAP_SIZE 20
-#endif
-
-#endif // BOOST_MPL_LIMITS_MAP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIMITS_SET_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_SET_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/set.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_LIMIT_SET_SIZE)
-# define BOOST_MPL_LIMIT_SET_SIZE 20
-#endif
-
-#endif // BOOST_MPL_LIMITS_SET_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/unrolling.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.4 $
-
-#if !defined(BOOST_MPL_LIMIT_UNROLLING)
-# define BOOST_MPL_LIMIT_UNROLLING 4
-#endif
-
-#endif // BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/vector.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.4 $
-
-#if !defined(BOOST_MPL_LIMIT_VECTOR_SIZE)
-# define BOOST_MPL_LIMIT_VECTOR_SIZE 20
-#endif
-
-#endif // BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_HPP_INCLUDED
-#define BOOST_MPL_LIST_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list.hpp,v $
-// $Date: 2004/11/28 01:54:51 $
-// $Revision: 1.9 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/list.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_LIST_HEADER \
- BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \
- /**/
-#else
-# define AUX778076_LIST_HEADER \
- BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER)
-# undef AUX778076_LIST_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/list.hpp>
-
-# define AUX778076_SEQUENCE_NAME list
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_LIST_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/O1_size.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct O1_size_impl< aux::list_tag >
-{
- template< typename List > struct apply
- : List::size
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/begin_end.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/list/aux_/iterator.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct begin_impl< aux::list_tag >
-{
- template< typename List > struct apply
- {
- typedef l_iter<typename List::type> type;
- };
-};
-
-template<>
-struct end_impl< aux::list_tag >
-{
- template< typename > struct apply
- {
- typedef l_iter<l_end> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/clear.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct clear_impl< aux::list_tag >
-{
- template< typename List > struct apply
- {
- typedef l_end type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/empty.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct empty_impl< aux::list_tag >
-{
- template< typename List > struct apply
- : not_<typename List::size>
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/front.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct front_impl< aux::list_tag >
-{
- template< typename List > struct apply
- {
- typedef typename List::item type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+++ /dev/null
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/include_preprocessed.hpp,v $
-// $Date: 2004/11/28 01:48:53 $
-// $Revision: 1.4 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-# define AUX778076_HEADER \
- aux_/preprocessed/plain/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-
-# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER)
-
-# undef AUX778076_HEADER
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/item.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename Size
- , typename T
- , typename Next
- >
-struct l_item
-{
-// agurt, 17/jul/03: to facilitate the deficient 'is_sequence' implementation
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- typedef int begin;
-#endif
- typedef aux::list_tag tag;
- typedef l_item type;
-
- typedef Size size;
- typedef T item;
- typedef Next next;
-};
-
-struct l_end
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- typedef int begin;
-#endif
- typedef aux::list_tag tag;
- typedef l_end type;
- typedef long_<0> size;
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/iterator.hpp,v $
-// $Date: 2004/10/01 16:29:37 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Node >
-struct l_iter
-{
- typedef aux::l_iter_tag tag;
- typedef forward_iterator_tag category;
-};
-
-template< typename Node >
-struct deref< l_iter<Node> >
-{
- typedef typename Node::item type;
-};
-
-template< typename Node >
-struct next< l_iter<Node> >
-{
- typedef l_iter< typename Node::next > type;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< typename Node >
-struct l_iter
-{
- typedef aux::l_iter_tag tag;
- typedef forward_iterator_tag category;
- typedef typename Node::item type;
- typedef l_iter< typename mpl::next<Node>::type > next;
-};
-
-#endif
-
-
-template<> struct l_iter<l_end>
-{
- typedef aux::l_iter_tag tag;
- typedef forward_iterator_tag category;
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- typedef na type;
- typedef l_iter next;
-#endif
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter)
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Peter Dimov 2000-2002
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/numbered.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.4 $
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i BOOST_PP_FRAME_ITERATION(1)
-
-#if i == 1
-
-template<
- BOOST_PP_ENUM_PARAMS(i, typename T)
- >
-struct list1
- : l_item<
- long_<1>
- , T0
- , l_end
- >
-{
- typedef list1 type;
-};
-
-#else
-
-# define MPL_AUX_LIST_TAIL(list, i, T) \
- BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \
- BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
- > \
- /**/
-
-template<
- BOOST_PP_ENUM_PARAMS(i, typename T)
- >
-struct BOOST_PP_CAT(list,i)
- : l_item<
- long_<i>
- , T0
- , MPL_AUX_LIST_TAIL(list,i,T)
- >
-{
- typedef BOOST_PP_CAT(list,i) type;
-};
-
-# undef MPL_AUX_LIST_TAIL
-
-#endif // i == 1
-
-#undef i
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/numbered_c.hpp,v $
-// $Date: 2004/11/28 01:48:53 $
-// $Revision: 1.5 $
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i BOOST_PP_FRAME_ITERATION(1)
-
-#if i == 1
-
-template<
- typename T
- , BOOST_PP_ENUM_PARAMS(i, T C)
- >
-struct list1_c
- : l_item<
- long_<1>
- , integral_c<T,C0>
- , l_end
- >
-{
- typedef list1_c type;
- typedef T value_type;
-};
-
-#else
-
-# define MPL_AUX_LIST_C_TAIL(list, i, C) \
- BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c)<T, \
- BOOST_PP_ENUM_SHIFTED_PARAMS(i, C) \
- > \
- /**/
-
-template<
- typename T
- , BOOST_PP_ENUM_PARAMS(i, T C)
- >
-struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c)
- : l_item<
- long_<i>
- , integral_c<T,C0>
- , MPL_AUX_LIST_C_TAIL(list,i,C)
- >
-{
- typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type;
- typedef T value_type;
-};
-
-# undef MPL_AUX_LIST_C_TAIL
-
-#endif // i == 1
-
-#undef i
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/pop_front.hpp,v $
-// $Date: 2004/10/24 08:18:08 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/pop_front_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct pop_front_impl< aux::list_tag >
-{
- template< typename List > struct apply
- {
- typedef typename mpl::next<List>::type type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
+++ /dev/null
-
-// 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 "boost/mpl/list/list10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0
- >
-struct list1
- : l_item<
- long_<1>
- , T0
- , l_end
- >
-{
- typedef list1 type;
-};
-
-template<
- typename T0, typename T1
- >
-struct list2
- : l_item<
- long_<2>
- , T0
- , list1<T1>
- >
-{
- typedef list2 type;
-};
-
-template<
- typename T0, typename T1, typename T2
- >
-struct list3
- : l_item<
- long_<3>
- , T0
- , list2< T1,T2 >
- >
-{
- typedef list3 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3
- >
-struct list4
- : l_item<
- long_<4>
- , T0
- , list3< T1,T2,T3 >
- >
-{
- typedef list4 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- >
-struct list5
- : l_item<
- long_<5>
- , T0
- , list4< T1,T2,T3,T4 >
- >
-{
- typedef list5 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct list6
- : l_item<
- long_<6>
- , T0
- , list5< T1,T2,T3,T4,T5 >
- >
-{
- typedef list6 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6
- >
-struct list7
- : l_item<
- long_<7>
- , T0
- , list6< T1,T2,T3,T4,T5,T6 >
- >
-{
- typedef list7 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7
- >
-struct list8
- : l_item<
- long_<8>
- , T0
- , list7< T1,T2,T3,T4,T5,T6,T7 >
- >
-{
- typedef list8 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8
- >
-struct list9
- : l_item<
- long_<9>
- , T0
- , list8< T1,T2,T3,T4,T5,T6,T7,T8 >
- >
-{
- typedef list9 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- >
-struct list10
- : l_item<
- long_<10>
- , T0
- , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 >
- >
-{
- typedef list10 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0
- >
-struct list1_c
- : l_item<
- long_<1>
- , integral_c< T,C0 >
- , l_end
- >
-{
- typedef list1_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1
- >
-struct list2_c
- : l_item<
- long_<2>
- , integral_c< T,C0 >
- , list1_c< T,C1 >
- >
-{
- typedef list2_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2
- >
-struct list3_c
- : l_item<
- long_<3>
- , integral_c< T,C0 >
- , list2_c< T,C1,C2 >
- >
-{
- typedef list3_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3
- >
-struct list4_c
- : l_item<
- long_<4>
- , integral_c< T,C0 >
- , list3_c< T,C1,C2,C3 >
- >
-{
- typedef list4_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4
- >
-struct list5_c
- : l_item<
- long_<5>
- , integral_c< T,C0 >
- , list4_c< T,C1,C2,C3,C4 >
- >
-{
- typedef list5_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5
- >
-struct list6_c
- : l_item<
- long_<6>
- , integral_c< T,C0 >
- , list5_c< T,C1,C2,C3,C4,C5 >
- >
-{
- typedef list6_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6
- >
-struct list7_c
- : l_item<
- long_<7>
- , integral_c< T,C0 >
- , list6_c< T,C1,C2,C3,C4,C5,C6 >
- >
-{
- typedef list7_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
- >
-struct list8_c
- : l_item<
- long_<8>
- , integral_c< T,C0 >
- , list7_c< T,C1,C2,C3,C4,C5,C6,C7 >
- >
-{
- typedef list8_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
- >
-struct list9_c
- : l_item<
- long_<9>
- , integral_c< T,C0 >
- , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 >
- >
-{
- typedef list9_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
- >
-struct list10_c
- : l_item<
- long_<10>
- , integral_c< T,C0 >
- , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
- >
-{
- typedef list10_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- , typename T10
- >
-struct list11
- : l_item<
- long_<11>
- , T0
- , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
- >
-{
- typedef list11 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 list12
- : l_item<
- long_<12>
- , T0
- , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
- >
-{
- typedef list12 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 list13
- : l_item<
- long_<13>
- , T0
- , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
- >
-{
- typedef list13 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 list14
- : l_item<
- long_<14>
- , T0
- , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
- >
-{
- typedef list14 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 list15
- : l_item<
- long_<15>
- , T0
- , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
- >
-{
- typedef list15 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 list16
- : l_item<
- long_<16>
- , T0
- , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
- >
-{
- typedef list16 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 list17
- : l_item<
- long_<17>
- , T0
- , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
- >
-{
- typedef list17 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 list18
- : l_item<
- long_<18>
- , T0
- , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
- >
-{
- typedef list18 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 list19
- : l_item<
- long_<19>
- , T0
- , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
- >
-{
- typedef list19 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, typename T19
- >
-struct list20
- : l_item<
- long_<20>
- , T0
- , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
- >
-{
- typedef list20 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
- >
-struct list11_c
- : l_item<
- long_<11>
- , integral_c< T,C0 >
- , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
- >
-{
- typedef list11_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list12_c
- : l_item<
- long_<12>
- , integral_c< T,C0 >
- , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
- >
-{
- typedef list12_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list13_c
- : l_item<
- long_<13>
- , integral_c< T,C0 >
- , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
- >
-{
- typedef list13_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list14_c
- : l_item<
- long_<14>
- , integral_c< T,C0 >
- , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
- >
-{
- typedef list14_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list15_c
- : l_item<
- long_<15>
- , integral_c< T,C0 >
- , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
- >
-{
- typedef list15_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list16_c
- : l_item<
- long_<16>
- , integral_c< T,C0 >
- , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
- >
-{
- typedef list16_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list17_c
- : l_item<
- long_<17>
- , integral_c< T,C0 >
- , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
- >
-{
- typedef list17_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list18_c
- : l_item<
- long_<18>
- , integral_c< T,C0 >
- , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
- >
-{
- typedef list18_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list19_c
- : l_item<
- long_<19>
- , integral_c< T,C0 >
- , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
- >
-{
- typedef list19_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct list20_c
- : l_item<
- long_<20>
- , integral_c< T,C0 >
- , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
- >
-{
- typedef list20_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20
- >
-struct list21
- : l_item<
- long_<21>
- , T0
- , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
- >
-{
- typedef list21 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, typename T19
- , typename T20, typename T21
- >
-struct list22
- : l_item<
- long_<22>
- , T0
- , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
- >
-{
- typedef list22 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, typename T19
- , typename T20, typename T21, typename T22
- >
-struct list23
- : l_item<
- long_<23>
- , T0
- , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
- >
-{
- typedef list23 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, typename T19
- , typename T20, typename T21, typename T22, typename T23
- >
-struct list24
- : l_item<
- long_<24>
- , T0
- , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
- >
-{
- typedef list24 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- >
-struct list25
- : l_item<
- long_<25>
- , T0
- , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
- >
-{
- typedef list25 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25
- >
-struct list26
- : l_item<
- long_<26>
- , T0
- , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
- >
-{
- typedef list26 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26
- >
-struct list27
- : l_item<
- long_<27>
- , T0
- , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
- >
-{
- typedef list27 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27
- >
-struct list28
- : l_item<
- long_<28>
- , T0
- , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
- >
-{
- typedef list28 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28
- >
-struct list29
- : l_item<
- long_<29>
- , T0
- , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
- >
-{
- typedef list29 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- >
-struct list30
- : l_item<
- long_<30>
- , T0
- , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
- >
-{
- typedef list30 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- >
-struct list21_c
- : l_item<
- long_<21>
- , integral_c< T,C0 >
- , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
- >
-{
- typedef list21_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21
- >
-struct list22_c
- : l_item<
- long_<22>
- , integral_c< T,C0 >
- , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
- >
-{
- typedef list22_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22
- >
-struct list23_c
- : l_item<
- long_<23>
- , integral_c< T,C0 >
- , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
- >
-{
- typedef list23_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23
- >
-struct list24_c
- : l_item<
- long_<24>
- , integral_c< T,C0 >
- , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
- >
-{
- typedef list24_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24
- >
-struct list25_c
- : l_item<
- long_<25>
- , integral_c< T,C0 >
- , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
- >
-{
- typedef list25_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25
- >
-struct list26_c
- : l_item<
- long_<26>
- , integral_c< T,C0 >
- , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
- >
-{
- typedef list26_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26
- >
-struct list27_c
- : l_item<
- long_<27>
- , integral_c< T,C0 >
- , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
- >
-{
- typedef list27_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27
- >
-struct list28_c
- : l_item<
- long_<28>
- , integral_c< T,C0 >
- , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
- >
-{
- typedef list28_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
- >
-struct list29_c
- : l_item<
- long_<29>
- , integral_c< T,C0 >
- , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
- >
-{
- typedef list29_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
- >
-struct list30_c
- : l_item<
- long_<30>
- , integral_c< T,C0 >
- , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
- >
-{
- typedef list30_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30
- >
-struct list31
- : l_item<
- long_<31>
- , T0
- , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
- >
-{
- typedef list31 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31
- >
-struct list32
- : l_item<
- long_<32>
- , T0
- , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
- >
-{
- typedef list32 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32
- >
-struct list33
- : l_item<
- long_<33>
- , T0
- , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
- >
-{
- typedef list33 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33
- >
-struct list34
- : l_item<
- long_<34>
- , T0
- , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
- >
-{
- typedef list34 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- >
-struct list35
- : l_item<
- long_<35>
- , T0
- , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
- >
-{
- typedef list35 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35
- >
-struct list36
- : l_item<
- long_<36>
- , T0
- , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
- >
-{
- typedef list36 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36
- >
-struct list37
- : l_item<
- long_<37>
- , T0
- , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
- >
-{
- typedef list37 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37
- >
-struct list38
- : l_item<
- long_<38>
- , T0
- , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
- >
-{
- typedef list38 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38
- >
-struct list39
- : l_item<
- long_<39>
- , T0
- , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
- >
-{
- typedef list39 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- >
-struct list40
- : l_item<
- long_<40>
- , T0
- , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
- >
-{
- typedef list40 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- >
-struct list31_c
- : l_item<
- long_<31>
- , integral_c< T,C0 >
- , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
- >
-{
- typedef list31_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31
- >
-struct list32_c
- : l_item<
- long_<32>
- , integral_c< T,C0 >
- , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
- >
-{
- typedef list32_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32
- >
-struct list33_c
- : l_item<
- long_<33>
- , integral_c< T,C0 >
- , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
- >
-{
- typedef list33_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33
- >
-struct list34_c
- : l_item<
- long_<34>
- , integral_c< T,C0 >
- , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
- >
-{
- typedef list34_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34
- >
-struct list35_c
- : l_item<
- long_<35>
- , integral_c< T,C0 >
- , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
- >
-{
- typedef list35_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35
- >
-struct list36_c
- : l_item<
- long_<36>
- , integral_c< T,C0 >
- , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
- >
-{
- typedef list36_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36
- >
-struct list37_c
- : l_item<
- long_<37>
- , integral_c< T,C0 >
- , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
- >
-{
- typedef list37_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37
- >
-struct list38_c
- : l_item<
- long_<38>
- , integral_c< T,C0 >
- , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
- >
-{
- typedef list38_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
- >
-struct list39_c
- : l_item<
- long_<39>
- , integral_c< T,C0 >
- , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
- >
-{
- typedef list39_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
- >
-struct list40_c
- : l_item<
- long_<40>
- , integral_c< T,C0 >
- , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
- >
-{
- typedef list40_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40
- >
-struct list41
- : l_item<
- long_<41>
- , T0
- , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
- >
-{
- typedef list41 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41
- >
-struct list42
- : l_item<
- long_<42>
- , T0
- , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
- >
-{
- typedef list42 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42
- >
-struct list43
- : l_item<
- long_<43>
- , T0
- , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
- >
-{
- typedef list43 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43
- >
-struct list44
- : l_item<
- long_<44>
- , T0
- , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
- >
-{
- typedef list44 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- >
-struct list45
- : l_item<
- long_<45>
- , T0
- , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 >
- >
-{
- typedef list45 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45
- >
-struct list46
- : l_item<
- long_<46>
- , T0
- , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 >
- >
-{
- typedef list46 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46
- >
-struct list47
- : l_item<
- long_<47>
- , T0
- , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 >
- >
-{
- typedef list47 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47
- >
-struct list48
- : l_item<
- long_<48>
- , T0
- , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 >
- >
-{
- typedef list48 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48
- >
-struct list49
- : l_item<
- long_<49>
- , T0
- , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 >
- >
-{
- typedef list49 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48, typename T49
- >
-struct list50
- : l_item<
- long_<50>
- , T0
- , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 >
- >
-{
- typedef list50 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/list/list50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- >
-struct list41_c
- : l_item<
- long_<41>
- , integral_c< T,C0 >
- , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
- >
-{
- typedef list41_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41
- >
-struct list42_c
- : l_item<
- long_<42>
- , integral_c< T,C0 >
- , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
- >
-{
- typedef list42_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42
- >
-struct list43_c
- : l_item<
- long_<43>
- , integral_c< T,C0 >
- , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
- >
-{
- typedef list43_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43
- >
-struct list44_c
- : l_item<
- long_<44>
- , integral_c< T,C0 >
- , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
- >
-{
- typedef list44_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44
- >
-struct list45_c
- : l_item<
- long_<45>
- , integral_c< T,C0 >
- , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
- >
-{
- typedef list45_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45
- >
-struct list46_c
- : l_item<
- long_<46>
- , integral_c< T,C0 >
- , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
- >
-{
- typedef list46_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46
- >
-struct list47_c
- : l_item<
- long_<47>
- , integral_c< T,C0 >
- , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
- >
-{
- typedef list47_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47
- >
-struct list48_c
- : l_item<
- long_<48>
- , integral_c< T,C0 >
- , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
- >
-{
- typedef list48_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
- >
-struct list49_c
- : l_item<
- long_<49>
- , integral_c< T,C0 >
- , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
- >
-{
- typedef list49_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
- >
-struct list50_c
- : l_item<
- long_<50>
- , integral_c< T,C0 >
- , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 >
- >
-{
- typedef list50_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/push_back.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct has_push_back_impl;
-
-template<>
-struct has_push_back_impl< aux::list_tag >
-{
- template< typename Seq > struct apply
- : false_
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/push_front.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct push_front_impl< aux::list_tag >
-{
- template< typename List, typename T > struct apply
- {
- typedef l_item<
- typename next<typename List::size>::type
- , T
- , typename List::type
- > type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/size.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct size_impl< aux::list_tag >
-{
- template< typename List > struct apply
- : List::size
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/aux_/tag.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl { namespace aux {
-
-struct list_tag;
-struct l_iter_tag;
-
-}}}
-
-#endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST0_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST0_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list0.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/list/aux_/push_front.hpp>
-#include <boost/mpl/list/aux_/pop_front.hpp>
-#include <boost/mpl/list/aux_/push_back.hpp>
-#include <boost/mpl/list/aux_/front.hpp>
-#include <boost/mpl/list/aux_/clear.hpp>
-#include <boost/mpl/list/aux_/O1_size.hpp>
-#include <boost/mpl/list/aux_/size.hpp>
-#include <boost/mpl/list/aux_/empty.hpp>
-#include <boost/mpl/list/aux_/begin_end.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Dummy = na > struct list0;
-
-template<> struct list0<na>
- : l_end
-{
- typedef l_end type;
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_LIST0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list0_c.hpp,v $
-// $Date: 2004/11/28 07:18:24 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/list/list0.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T > struct list0_c
- : l_end
-{
- typedef l_end type;
- typedef T value_type;
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST10_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST10_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list10.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list0.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list10.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, 10, <boost/mpl/list/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST10_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list10_c.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list0_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list10_c.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, 10, <boost/mpl/list/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST20_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST20_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list20.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list20.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/list/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST20_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list20_c.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list10_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list20_c.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/list/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST30_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST30_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list30.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list30.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/list/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST30_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list30_c.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list20_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list30_c.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/list/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST40_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST40_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list40.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list40.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/list/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST40_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list40_c.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list30_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/list/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST50_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST50_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list50.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list50.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/list/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST50_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list/list50_c.hpp,v $
-// $Date: 2004/09/02 15:40:58 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/list/list40_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list50_c.hpp
-# include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/list/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/list_c.hpp,v $
-// $Date: 2004/11/28 01:54:51 $
-// $Revision: 1.8 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/list.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_LIST_C_HEADER \
- BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE),_c).hpp \
- /**/
-#else
-# define AUX778076_LIST_C_HEADER \
- BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE),_c)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_C_HEADER)
-# undef AUX778076_LIST_C_HEADER
-# include <climits>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER list_c.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/list.hpp>
-
-# define AUX778076_SEQUENCE_NAME list_c
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE
-# define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(list,n),_c)
-# define AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_LIST_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED
-#define BOOST_MPL_LOGICAL_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/logical.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-
-#endif // BOOST_MPL_LOGICAL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LONG_HPP_INCLUDED
-#define BOOST_MPL_LONG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/long.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/long_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE long
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // BOOST_MPL_LONG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LONG_FWD_HPP_INCLUDED
-#define BOOST_MPL_LONG_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/long_fwd.hpp,v $
-// $Date: 2004/09/28 13:56:58 $
-// $Revision: 1.4 $
-
-#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(long, N) > struct long_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(long_)
-
-#endif // BOOST_MPL_LONG_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LOWER_BOUND_HPP_INCLUDED
-#define BOOST_MPL_LOWER_BOUND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/lower_bound.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
-#endif
-
-#if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL)
-# include <boost/mpl/minus.hpp>
-# include <boost/mpl/divides.hpp>
-# include <boost/mpl/size.hpp>
-# include <boost/mpl/advance.hpp>
-# include <boost/mpl/begin_end.hpp>
-# include <boost/mpl/long.hpp>
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/prior.hpp>
-# include <boost/mpl/deref.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#else
-# include <boost/mpl/not.hpp>
-# include <boost/mpl/find.hpp>
-# include <boost/mpl/bind.hpp>
-#endif
-
-#include <boost/config.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL)
-
-// agurt 23/oct/02: has a wrong complexity etc., but at least it works
-// feel free to contribute a better implementation!
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- , typename Predicate = less<>
- , typename pred_ = typename lambda<Predicate>::type
- >
-struct lower_bound
- : find_if< Sequence, bind1< not_<>, bind2<pred_,_,T> > >
-{
-};
-
-#else
-
-namespace aux {
-
-template<
- typename Distance
- , typename Predicate
- , typename T
- , typename DeferredIterator
- >
-struct lower_bound_step_impl;
-
-template<
- typename Distance
- , typename Predicate
- , typename T
- , typename DeferredIterator
- >
-struct lower_bound_step
-{
- typedef typename eval_if<
- Distance
- , lower_bound_step_impl<Distance,Predicate,T,DeferredIterator>
- , DeferredIterator
- >::type type;
-};
-
-template<
- typename Distance
- , typename Predicate
- , typename T
- , typename DeferredIterator
- >
-struct lower_bound_step_impl
-{
- typedef typename divides< Distance, long_<2> >::type offset_;
- typedef typename DeferredIterator::type iter_;
- typedef typename advance< iter_,offset_ >::type middle_;
- typedef typename apply2<
- Predicate
- , typename deref<middle_>::type
- , T
- >::type cond_;
-
- typedef typename prior< minus< Distance, offset_> >::type step_;
- typedef lower_bound_step< offset_,Predicate,T,DeferredIterator > step_forward_;
- typedef lower_bound_step< step_,Predicate,T,next<middle_> > step_backward_;
- typedef typename eval_if<
- cond_
- , step_backward_
- , step_forward_
- >::type type;
-};
-
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- , typename Predicate = less<>
- >
-struct lower_bound
-{
- private:
- typedef typename lambda<Predicate>::type pred_;
- typedef typename size<Sequence>::type size_;
-
- public:
- typedef typename aux::lower_bound_step<
- size_,pred_,T,begin<Sequence>
- >::type type;
-};
-
-#endif // BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
-
-BOOST_MPL_AUX_NA_SPEC(2, lower_bound)
-
-}}
-
-#endif // BOOST_MPL_LOWER_BOUND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_HPP_INCLUDED
-#define BOOST_MPL_MAP_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/map.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_MAP_HEADER \
- BOOST_PP_CAT(map, BOOST_MPL_LIMIT_MAP_SIZE).hpp \
- /**/
-#else
-# define AUX778076_MAP_HEADER \
- BOOST_PP_CAT(map, BOOST_MPL_LIMIT_MAP_SIZE)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/map/AUX778076_MAP_HEADER)
-# undef AUX778076_MAP_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER map.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/map.hpp>
-
-# define AUX778076_SEQUENCE_NAME map
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_MAP_SIZE
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_MAP_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/at_impl.hpp,v $
-// $Date: 2004/12/14 14:05:31 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/at_fwd.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-#include <boost/mpl/aux_/order_impl.hpp>
-#include <boost/mpl/aux_/overload_names.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/ptr_to_ref.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/pair.hpp>
-# include <boost/mpl/void.hpp>
-# include <boost/mpl/aux_/config/static_constant.hpp>
-#endif
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< typename Map, typename Key >
-struct m_at
-{
- typedef aux::type_wrapper<Key> key_;
- typedef __typeof__( BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(
- Map
- , BOOST_MPL_AUX_STATIC_CAST(key_*, 0)
- ) ) type;
-};
-
-template<>
-struct at_impl< aux::map_tag >
-{
- template< typename Map, typename Key > struct apply
- : aux::wrapped_type< typename m_at<
- Map
- , Key
- >::type >
- {
- };
-};
-
-// agurt 31/jan/04: two-step implementation for the sake of GCC 3.x
-template< typename Map, long order >
-struct item_by_order_impl
-{
- typedef __typeof__( BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(
- Map
- , BOOST_MPL_AUX_STATIC_CAST(long_<order>*, 0)
- ) ) type;
-};
-
-template< typename Map, long order >
-struct item_by_order
- : aux::wrapped_type<
- typename item_by_order_impl<Map,order>::type
- >
-{
-};
-
-#else // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Map, long n > struct m_at
-{
- typedef void_ type;
-};
-
-# else
-
-template< long n > struct m_at_impl
-{
- template< typename Map > struct result_
- {
- typedef void_ type;
- };
-};
-
-template< typename Map, long n > struct m_at
-{
- typedef typename m_at_impl<n>::result_<Map>::type type;
-};
-
-# endif
-
-
-template<>
-struct at_impl< aux::map_tag >
-{
- template< typename Map, typename Key > struct apply
- {
- typedef typename m_at< Map, (x_order_impl<Map,Key>::value - 2) >::type item_;
- typedef typename eval_if<
- is_void_<item_>
- , void_
- , second<item_>
- >::type type;
- };
-};
-
-template< typename Map, long order > struct is_item_masked
-{
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(
- Map
- , BOOST_MPL_AUX_STATIC_CAST(long_<order>*, 0)
- ) ) == sizeof(aux::yes_tag)
- );
-};
-
-template< typename Map, long order > struct item_by_order
-{
- typedef typename eval_if_c<
- is_item_masked<Map,order>::value
- , void_
- , m_at<Map,(order - 2)>
- >::type type;
-};
-
-#endif
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/begin_end_impl.hpp,v $
-// $Date: 2004/09/05 09:42:58 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/map/aux_/iterator.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct begin_impl< aux::map_tag >
-{
- template< typename Map > struct apply
- {
- typedef typename next< typename Map::order >::type max_order_;
- typedef m_iter<
- Map
- , next_order<Map,1,max_order_::value>::value
- , max_order_::value
- > type;
- };
-};
-
-template<>
-struct end_impl< aux::map_tag >
-{
- template< typename Map > struct apply
- {
- typedef typename next< typename Map::order >::type max_order_;
- typedef m_iter< Map,max_order_::value,max_order_::value > type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_BEGIN_END_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_CLEAR_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_CLEAR_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/clear_impl.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/map/aux_/map0.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct clear_impl< aux::map_tag >
-{
- template< typename Map > struct apply
- {
- typedef map0<> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_CLEAR_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_CONTAINS_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_CONTAINS_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/contains_impl.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/contains_fwd.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/map/aux_/at_impl.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct contains_impl< aux::map_tag >
-{
- template< typename Map, typename Pair > struct apply
- : is_same<
- typename at_impl<aux::map_tag>::apply<
- Map
- , typename Pair::first
- >::type
- , typename Pair::second
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_CONTAINS_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_EMPTY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_EMPTY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/empty_impl.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct empty_impl< aux::map_tag >
-{
- template< typename Map > struct apply
- : not_< typename Map::size >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_EMPTY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_ERASE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_ERASE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/erase_impl.hpp,v $
-// $Date: 2004/09/05 09:42:58 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/erase_fwd.hpp>
-#include <boost/mpl/map/aux_/erase_key_impl.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct erase_impl< aux::map_tag >
-{
- template<
- typename Map
- , typename Pos
- , typename unused_
- >
- struct apply
- : erase_key_impl<aux::map_tag>
- ::apply<Map,typename Pos::type::first>
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_ERASE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/erase_key_impl.hpp,v $
-// $Date: 2004/09/05 09:42:58 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/erase_key_fwd.hpp>
-#include <boost/mpl/map/aux_/has_key_impl.hpp>
-#include <boost/mpl/map/aux_/item.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/base.hpp>
-#include <boost/mpl/eval_if.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct erase_key_impl< aux::map_tag >
-{
- template<
- typename Map
- , typename Key
- >
- struct apply
- : eval_if<
- has_key_impl<aux::map_tag>::apply<Map,Key>
- , eval_if<
- is_same< Key,typename Map::key_ >
- , base<Map>
- , identity< m_mask<Key,Map> >
- >
- , identity<Map>
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_HAS_KEY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_HAS_KEY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/has_key_impl.hpp,v $
-// $Date: 2004/09/05 09:42:58 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/has_key_fwd.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-#include <boost/mpl/map/aux_/at_impl.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct has_key_impl< aux::map_tag >
-{
- template< typename Map, typename Key > struct apply
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
- : is_not_void_<
- typename at_impl<aux::map_tag>
- ::apply<Map,Key>::type
- >
-#else
- : bool_< ( x_order_impl<Map,Key>::value > 1 ) >
-#endif
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_HAS_KEY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/include_preprocessed.hpp,v $
-// $Date: 2004/09/05 09:42:58 $
-// $Revision: 1.3 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-# define AUX778076_INCLUDE_DIR typeof_based
-#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# define AUX778076_INCLUDE_DIR no_ctps
-#else
-# define AUX778076_INCLUDE_DIR plain
-#endif
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_HEADER \
- AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-# define AUX778076_HEADER \
- BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-
-# include BOOST_PP_STRINGIZE(boost/mpl/map/aux_/preprocessed/AUX778076_HEADER)
-
-# undef AUX778076_HEADER
-# undef AUX778076_INCLUDE_DIR
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/insert_impl.hpp,v $
-// $Date: 2004/12/14 14:05:31 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/insert_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/map/aux_/contains_impl.hpp>
-#include <boost/mpl/map/aux_/item.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename Map, typename Pair >
-struct map_insert_impl
- : if_<
- contains_impl<aux::map_tag>::apply<Map,Pair>
- , Map
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
- , m_item<
- typename Pair::first
- , typename Pair::second
- , Map
- >
-#else
- , m_item<
- next< typename Map::size >::type::value
- , typename Pair::first
- , typename Pair::second
- , Map
- >
-#endif
- >
-{
-};
-}
-
-template<>
-struct insert_impl< aux::map_tag >
-{
- template<
- typename Map
- , typename PosOrKey
- , typename KeyOrNA
- >
- struct apply
- : aux::map_insert_impl<
- Map
- , typename if_na<KeyOrNA,PosOrKey>::type
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_ITEM_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_ITEM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/item.hpp,v $
-// $Date: 2004/12/14 14:05:32 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/prior.hpp>
-#include <boost/mpl/map/aux_/map0.hpp>
-#include <boost/mpl/aux_/order_impl.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/config/arrays.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< typename Key, typename T, typename Base >
-struct m_item
- : Base
-{
- typedef Key key_;
- typedef pair<Key,T> item;
- typedef Base base;
-
- typedef typename next< typename Base::size >::type size;
- typedef typename next< typename Base::order >::type order;
-
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- typedef typename aux::weighted_tag<BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value>::type order_tag_;
-#else
- typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value];
-#endif
-
- BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper<T>, VALUE_BY_KEY, m_item, aux::type_wrapper<Key>* );
- BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper<item>, ITEM_BY_ORDER, m_item, order* );
- BOOST_MPL_AUX_MAP_OVERLOAD( order_tag_, ORDER_BY_KEY, m_item, aux::type_wrapper<Key>* );
-};
-
-
-template< typename Key, typename Base >
-struct m_mask
- : Base
-{
- typedef void_ key_;
- typedef Base base;
-
- typedef typename prior< typename Base::size >::type size;
- typedef typename x_order_impl<Base,Key>::type key_order_;
-
- BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper<void_>, VALUE_BY_KEY, m_mask, aux::type_wrapper<Key>* );
- BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper<void_>, ITEM_BY_ORDER, m_mask, key_order_* );
-};
-
-#else // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long n, typename Key, typename T, typename Base >
-struct m_item;
-
-# else
-
-template< long n >
-struct m_item_impl
-{
- template< typename Key, typename T, typename Base >
- struct result_;
-};
-
-template< long n, typename Key, typename T, typename Base >
-struct m_item
- : m_item_impl<n>::result_<Key,T,Base>
-{
-};
-
-
-# endif
-
-
-template< typename Key, typename T, typename Base >
-struct m_item_
- : Base
-{
- typedef Key key_;
- typedef Base base;
- typedef m_item_ type;
-
- typedef typename next< typename Base::size >::type size;
- typedef typename next< typename Base::order >::type order;
-
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- typedef typename aux::weighted_tag<BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value>::type order_tag_;
-#else
- typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value];
-#endif
-
- BOOST_MPL_AUX_MAP_OVERLOAD( order_tag_, ORDER_BY_KEY, m_item_, aux::type_wrapper<Key>* );
-};
-
-template< typename Key, typename Base >
-struct m_mask
- : Base
-{
- typedef void_ key_;
- typedef Base base;
-
- typedef typename prior< typename Base::size >::type size;
- typedef typename x_order_impl<Base,Key>::type key_order_;
-
- BOOST_MPL_AUX_MAP_OVERLOAD( aux::no_tag, ORDER_BY_KEY, m_mask, aux::type_wrapper<Key>* );
- BOOST_MPL_AUX_MAP_OVERLOAD( aux::yes_tag, IS_MASKED, m_mask, key_order_* );
-};
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_ITEM_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_ITERATOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/iterator.hpp,v $
-// $Date: 2004/12/14 14:05:32 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/map/aux_/map0.hpp>
-#include <boost/mpl/map/aux_/at_impl.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct next_order
- : if_<
- is_void_< typename item_by_order<Map,order>::type >
- , next_order<Map,(order+1),max_order>
- , long_<order>
- >::type
-{
-};
-
-template<
- typename Map
- , long max_order
- >
-struct next_order<Map,max_order,max_order>
- : long_<max_order>
-{
-};
-
-
-template< typename Map, long order, long max_order >
-struct m_iter
-{
- typedef forward_iterator_tag category;
- typedef typename item_by_order<Map,order>::type type;
-};
-
-template< typename Map, long max_order >
-struct m_iter<Map,max_order,max_order>
-{
- typedef forward_iterator_tag category;
-};
-
-
-template< typename Map, long order, long max_order >
-struct next< m_iter<Map,order,max_order> >
-{
- typedef m_iter<
- Map
- , next_order<Map,order+1,max_order>::value
- , max_order
- > type;
-};
-
-template< typename Map, long max_order >
-struct next< m_iter<Map,max_order,max_order> >
-{
-};
-
-#else
-
-template<
- typename Map
- , BOOST_MPL_AUX_NTTP_DECL(long, order)
- , BOOST_MPL_AUX_NTTP_DECL(long, max_order)
- >
-struct next_order;
-
-template<
- typename Map
- , BOOST_MPL_AUX_NTTP_DECL(long, order)
- , BOOST_MPL_AUX_NTTP_DECL(long, max_order)
- >
-struct next_order_impl
- : if_<
- is_void_< typename item_by_order<Map,order>::type >
- , next_order<Map,(order+1),max_order>
- , long_<order>
- >::type
- {
- };
-
-template<
- typename Map
- , BOOST_MPL_AUX_NTTP_DECL(long, order)
- , BOOST_MPL_AUX_NTTP_DECL(long, max_order)
- >
-struct next_order
- : if_c<
- (order != max_order)
- , next_order_impl<Map,order,max_order>
- , long_<order>
- >::type
-{
-};
-
-
-template<
- typename Map
- , BOOST_MPL_AUX_NTTP_DECL(long, order)
- , BOOST_MPL_AUX_NTTP_DECL(long, max_order)
- >
-struct m_iter;
-
-struct m_iter_empty_base {};
-
-template<
- typename Map
- , BOOST_MPL_AUX_NTTP_DECL(long, order)
- , BOOST_MPL_AUX_NTTP_DECL(long, max_order)
- >
-struct m_iter_base
-{
- typedef typename item_by_order<Map,order>::type type;
-
- typedef m_iter<
- Map
- , next_order<Map,order+1,max_order>::value
- , max_order
- > next;
-};
-
-template<
- typename Map
- , BOOST_MPL_AUX_NTTP_DECL(long, order)
- , BOOST_MPL_AUX_NTTP_DECL(long, max_order)
- >
-struct m_iter
- : if_c<
- (order == max_order)
- , m_iter_empty_base
- , m_iter_base<Map,order,max_order>
- >::type
-{
- typedef forward_iterator_tag category;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_ITERATOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_KEY_TYPE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_KEY_TYPE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/key_type_impl.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/key_type_fwd.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-namespace boost {
-namespace mpl {
-
-template<>
-struct key_type_impl< aux::map_tag >
-{
- template< typename Map, typename T > struct apply
- : first<T>
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_KEY_TYPE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/map0.hpp,v $
-// $Date: 2004/10/13 18:23:36 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/overload_names.hpp>
-#include <boost/mpl/aux_/config/operators.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING)
-
-# define BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \
- friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
-/**/
-
-# define BOOST_MPL_AUX_MAP_OVERLOAD(R, f, X, T) \
- BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \
-/**/
-
-#else
-
-# define BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \
- static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
-/**/
-
-# define BOOST_MPL_AUX_MAP_OVERLOAD(R, f, X, T) \
- BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T); \
- using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \
-/**/
-
-#endif
-
-
-template< typename Dummy = na > struct map0
-{
- typedef map0 type;
- typedef aux::map_tag tag;
- typedef void_ key_;
- typedef long_<1> order;
- typedef long_<0> size;
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
- BOOST_MPL_AUX_MAP0_OVERLOAD( aux::type_wrapper<void_>, VALUE_BY_KEY, map0<>, void const volatile* );
- BOOST_MPL_AUX_MAP0_OVERLOAD( aux::type_wrapper<void_>, ITEM_BY_ORDER, map0<>, long_<1>* );
- BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, map0<>, void const volatile* );
-#else
- BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, map0<>, void const volatile* );
- BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, IS_MASKED, map0<>, void const volatile* );
-#endif
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/numbered.hpp,v $
-// $Date: 2004/12/14 14:05:32 $
-// $Revision: 1.4 $
-
-#else
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-# define AUX778076_MAP_TAIL(map, i_, P) \
- BOOST_PP_CAT(map,i_)< \
- BOOST_PP_ENUM_PARAMS(i_, P) \
- > \
- /**/
-
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<
- BOOST_PP_ENUM_PARAMS(i_, typename P)
- >
-struct BOOST_PP_CAT(map,i_)
- : m_item<
- typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first
- , typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second
- , AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P)
- >
-{
- typedef BOOST_PP_CAT(map,i_) type;
-};
-
-#else // "brute force" implementation
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Map>
-struct m_at<Map,BOOST_PP_DEC(i_)>
-{
- typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item<i_,Key,T,Base>
- : m_item_<Key,T,Base>
-{
- typedef pair<Key,T> BOOST_PP_CAT(item,BOOST_PP_DEC(i_));
-};
-
-# else
-
-template<>
-struct m_at_impl<BOOST_PP_DEC(i_)>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type;
- };
-};
-
-template<>
-struct m_item_impl<i_>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_<Key,T,Base>
- {
- typedef pair<Key,T> BOOST_PP_CAT(item,BOOST_PP_DEC(i_));
- };
-};
-
-# endif
-
-template<
- BOOST_PP_ENUM_PARAMS(i_, typename P)
- >
-struct BOOST_PP_CAT(map,i_)
- : m_item<
- i_
- , typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first
- , typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second
- , AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P)
- >
-{
- typedef BOOST_PP_CAT(map,i_) type;
-};
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-# undef AUX778076_MAP_TAIL
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<>
-struct m_at_impl<0>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item0 type;
- };
-};
-
-template<>
-struct m_item_impl<1>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item0;
- };
-};
-
-template<
- typename P0
- >
-struct map1
- : m_item<
- 1
- , typename P0::first
- , typename P0::second
- , map0< >
- >
-{
- typedef map1 type;
-};
-
-template<>
-struct m_at_impl<1>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item1 type;
- };
-};
-
-template<>
-struct m_item_impl<2>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item1;
- };
-};
-
-template<
- typename P0, typename P1
- >
-struct map2
- : m_item<
- 2
- , typename P1::first
- , typename P1::second
- , map1<P0>
- >
-{
- typedef map2 type;
-};
-
-template<>
-struct m_at_impl<2>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item2 type;
- };
-};
-
-template<>
-struct m_item_impl<3>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item2;
- };
-};
-
-template<
- typename P0, typename P1, typename P2
- >
-struct map3
- : m_item<
- 3
- , typename P2::first
- , typename P2::second
- , map2< P0,P1 >
- >
-{
- typedef map3 type;
-};
-
-template<>
-struct m_at_impl<3>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item3 type;
- };
-};
-
-template<>
-struct m_item_impl<4>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item3;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3
- >
-struct map4
- : m_item<
- 4
- , typename P3::first
- , typename P3::second
- , map3< P0,P1,P2 >
- >
-{
- typedef map4 type;
-};
-
-template<>
-struct m_at_impl<4>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item4 type;
- };
-};
-
-template<>
-struct m_item_impl<5>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item4;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- >
-struct map5
- : m_item<
- 5
- , typename P4::first
- , typename P4::second
- , map4< P0,P1,P2,P3 >
- >
-{
- typedef map5 type;
-};
-
-template<>
-struct m_at_impl<5>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item5 type;
- };
-};
-
-template<>
-struct m_item_impl<6>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item5;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
-struct map6
- : m_item<
- 6
- , typename P5::first
- , typename P5::second
- , map5< P0,P1,P2,P3,P4 >
- >
-{
- typedef map6 type;
-};
-
-template<>
-struct m_at_impl<6>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item6 type;
- };
-};
-
-template<>
-struct m_item_impl<7>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item6;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6
- >
-struct map7
- : m_item<
- 7
- , typename P6::first
- , typename P6::second
- , map6< P0,P1,P2,P3,P4,P5 >
- >
-{
- typedef map7 type;
-};
-
-template<>
-struct m_at_impl<7>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item7 type;
- };
-};
-
-template<>
-struct m_item_impl<8>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item7;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7
- >
-struct map8
- : m_item<
- 8
- , typename P7::first
- , typename P7::second
- , map7< P0,P1,P2,P3,P4,P5,P6 >
- >
-{
- typedef map8 type;
-};
-
-template<>
-struct m_at_impl<8>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item8 type;
- };
-};
-
-template<>
-struct m_item_impl<9>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item8;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8
- >
-struct map9
- : m_item<
- 9
- , typename P8::first
- , typename P8::second
- , map8< P0,P1,P2,P3,P4,P5,P6,P7 >
- >
-{
- typedef map9 type;
-};
-
-template<>
-struct m_at_impl<9>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item9 type;
- };
-};
-
-template<>
-struct m_item_impl<10>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item9;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- >
-struct map10
- : m_item<
- 10
- , typename P9::first
- , typename P9::second
- , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 >
- >
-{
- typedef map10 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<>
-struct m_at_impl<10>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item10 type;
- };
-};
-
-template<>
-struct m_item_impl<11>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item10;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10
- >
-struct map11
- : m_item<
- 11
- , typename P10::first
- , typename P10::second
- , map10< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 >
- >
-{
- typedef map11 type;
-};
-
-template<>
-struct m_at_impl<11>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item11 type;
- };
-};
-
-template<>
-struct m_item_impl<12>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item11;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11
- >
-struct map12
- : m_item<
- 12
- , typename P11::first
- , typename P11::second
- , map11< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 >
- >
-{
- typedef map12 type;
-};
-
-template<>
-struct m_at_impl<12>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item12 type;
- };
-};
-
-template<>
-struct m_item_impl<13>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item12;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12
- >
-struct map13
- : m_item<
- 13
- , typename P12::first
- , typename P12::second
- , map12< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11 >
- >
-{
- typedef map13 type;
-};
-
-template<>
-struct m_at_impl<13>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item13 type;
- };
-};
-
-template<>
-struct m_item_impl<14>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item13;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13
- >
-struct map14
- : m_item<
- 14
- , typename P13::first
- , typename P13::second
- , map13< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 >
- >
-{
- typedef map14 type;
-};
-
-template<>
-struct m_at_impl<14>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item14 type;
- };
-};
-
-template<>
-struct m_item_impl<15>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item14;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- >
-struct map15
- : m_item<
- 15
- , typename P14::first
- , typename P14::second
- , map14< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13 >
- >
-{
- typedef map15 type;
-};
-
-template<>
-struct m_at_impl<15>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item15 type;
- };
-};
-
-template<>
-struct m_item_impl<16>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item15;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15
- >
-struct map16
- : m_item<
- 16
- , typename P15::first
- , typename P15::second
- , map15< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 >
- >
-{
- typedef map16 type;
-};
-
-template<>
-struct m_at_impl<16>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item16 type;
- };
-};
-
-template<>
-struct m_item_impl<17>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item16;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16
- >
-struct map17
- : m_item<
- 17
- , typename P16::first
- , typename P16::second
- , map16< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15 >
- >
-{
- typedef map17 type;
-};
-
-template<>
-struct m_at_impl<17>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item17 type;
- };
-};
-
-template<>
-struct m_item_impl<18>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item17;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17
- >
-struct map18
- : m_item<
- 18
- , typename P17::first
- , typename P17::second
- , map17< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 >
- >
-{
- typedef map18 type;
-};
-
-template<>
-struct m_at_impl<18>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item18 type;
- };
-};
-
-template<>
-struct m_item_impl<19>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item18;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18
- >
-struct map19
- : m_item<
- 19
- , typename P18::first
- , typename P18::second
- , map18< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17 >
- >
-{
- typedef map19 type;
-};
-
-template<>
-struct m_at_impl<19>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item19 type;
- };
-};
-
-template<>
-struct m_item_impl<20>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item19;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- >
-struct map20
- : m_item<
- 20
- , typename P19::first
- , typename P19::second
- , map19< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18 >
- >
-{
- typedef map20 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<>
-struct m_at_impl<20>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item20 type;
- };
-};
-
-template<>
-struct m_item_impl<21>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item20;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20
- >
-struct map21
- : m_item<
- 21
- , typename P20::first
- , typename P20::second
- , map20< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 >
- >
-{
- typedef map21 type;
-};
-
-template<>
-struct m_at_impl<21>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item21 type;
- };
-};
-
-template<>
-struct m_item_impl<22>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item21;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21
- >
-struct map22
- : m_item<
- 22
- , typename P21::first
- , typename P21::second
- , map21< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20 >
- >
-{
- typedef map22 type;
-};
-
-template<>
-struct m_at_impl<22>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item22 type;
- };
-};
-
-template<>
-struct m_item_impl<23>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item22;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22
- >
-struct map23
- : m_item<
- 23
- , typename P22::first
- , typename P22::second
- , map22< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21 >
- >
-{
- typedef map23 type;
-};
-
-template<>
-struct m_at_impl<23>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item23 type;
- };
-};
-
-template<>
-struct m_item_impl<24>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item23;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23
- >
-struct map24
- : m_item<
- 24
- , typename P23::first
- , typename P23::second
- , map23< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22 >
- >
-{
- typedef map24 type;
-};
-
-template<>
-struct m_at_impl<24>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item24 type;
- };
-};
-
-template<>
-struct m_item_impl<25>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item24;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- >
-struct map25
- : m_item<
- 25
- , typename P24::first
- , typename P24::second
- , map24< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23 >
- >
-{
- typedef map25 type;
-};
-
-template<>
-struct m_at_impl<25>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item25 type;
- };
-};
-
-template<>
-struct m_item_impl<26>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item25;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25
- >
-struct map26
- : m_item<
- 26
- , typename P25::first
- , typename P25::second
- , map25< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24 >
- >
-{
- typedef map26 type;
-};
-
-template<>
-struct m_at_impl<26>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item26 type;
- };
-};
-
-template<>
-struct m_item_impl<27>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item26;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26
- >
-struct map27
- : m_item<
- 27
- , typename P26::first
- , typename P26::second
- , map26< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25 >
- >
-{
- typedef map27 type;
-};
-
-template<>
-struct m_at_impl<27>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item27 type;
- };
-};
-
-template<>
-struct m_item_impl<28>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item27;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27
- >
-struct map28
- : m_item<
- 28
- , typename P27::first
- , typename P27::second
- , map27< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26 >
- >
-{
- typedef map28 type;
-};
-
-template<>
-struct m_at_impl<28>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item28 type;
- };
-};
-
-template<>
-struct m_item_impl<29>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item28;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28
- >
-struct map29
- : m_item<
- 29
- , typename P28::first
- , typename P28::second
- , map28< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27 >
- >
-{
- typedef map29 type;
-};
-
-template<>
-struct m_at_impl<29>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item29 type;
- };
-};
-
-template<>
-struct m_item_impl<30>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item29;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- >
-struct map30
- : m_item<
- 30
- , typename P29::first
- , typename P29::second
- , map29< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28 >
- >
-{
- typedef map30 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<>
-struct m_at_impl<30>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item30 type;
- };
-};
-
-template<>
-struct m_item_impl<31>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item30;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30
- >
-struct map31
- : m_item<
- 31
- , typename P30::first
- , typename P30::second
- , map30< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29 >
- >
-{
- typedef map31 type;
-};
-
-template<>
-struct m_at_impl<31>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item31 type;
- };
-};
-
-template<>
-struct m_item_impl<32>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item31;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31
- >
-struct map32
- : m_item<
- 32
- , typename P31::first
- , typename P31::second
- , map31< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30 >
- >
-{
- typedef map32 type;
-};
-
-template<>
-struct m_at_impl<32>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item32 type;
- };
-};
-
-template<>
-struct m_item_impl<33>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item32;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32
- >
-struct map33
- : m_item<
- 33
- , typename P32::first
- , typename P32::second
- , map32< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31 >
- >
-{
- typedef map33 type;
-};
-
-template<>
-struct m_at_impl<33>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item33 type;
- };
-};
-
-template<>
-struct m_item_impl<34>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item33;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33
- >
-struct map34
- : m_item<
- 34
- , typename P33::first
- , typename P33::second
- , map33< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32 >
- >
-{
- typedef map34 type;
-};
-
-template<>
-struct m_at_impl<34>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item34 type;
- };
-};
-
-template<>
-struct m_item_impl<35>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item34;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- >
-struct map35
- : m_item<
- 35
- , typename P34::first
- , typename P34::second
- , map34< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33 >
- >
-{
- typedef map35 type;
-};
-
-template<>
-struct m_at_impl<35>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item35 type;
- };
-};
-
-template<>
-struct m_item_impl<36>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item35;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35
- >
-struct map36
- : m_item<
- 36
- , typename P35::first
- , typename P35::second
- , map35< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 >
- >
-{
- typedef map36 type;
-};
-
-template<>
-struct m_at_impl<36>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item36 type;
- };
-};
-
-template<>
-struct m_item_impl<37>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item36;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36
- >
-struct map37
- : m_item<
- 37
- , typename P36::first
- , typename P36::second
- , map36< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35 >
- >
-{
- typedef map37 type;
-};
-
-template<>
-struct m_at_impl<37>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item37 type;
- };
-};
-
-template<>
-struct m_item_impl<38>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item37;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37
- >
-struct map38
- : m_item<
- 38
- , typename P37::first
- , typename P37::second
- , map37< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36 >
- >
-{
- typedef map38 type;
-};
-
-template<>
-struct m_at_impl<38>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item38 type;
- };
-};
-
-template<>
-struct m_item_impl<39>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item38;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38
- >
-struct map39
- : m_item<
- 39
- , typename P38::first
- , typename P38::second
- , map38< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37 >
- >
-{
- typedef map39 type;
-};
-
-template<>
-struct m_at_impl<39>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item39 type;
- };
-};
-
-template<>
-struct m_item_impl<40>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item39;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- >
-struct map40
- : m_item<
- 40
- , typename P39::first
- , typename P39::second
- , map39< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38 >
- >
-{
- typedef map40 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<>
-struct m_at_impl<40>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item40 type;
- };
-};
-
-template<>
-struct m_item_impl<41>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item40;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40
- >
-struct map41
- : m_item<
- 41
- , typename P40::first
- , typename P40::second
- , map40< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39 >
- >
-{
- typedef map41 type;
-};
-
-template<>
-struct m_at_impl<41>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item41 type;
- };
-};
-
-template<>
-struct m_item_impl<42>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item41;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41
- >
-struct map42
- : m_item<
- 42
- , typename P41::first
- , typename P41::second
- , map41< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40 >
- >
-{
- typedef map42 type;
-};
-
-template<>
-struct m_at_impl<42>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item42 type;
- };
-};
-
-template<>
-struct m_item_impl<43>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item42;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42
- >
-struct map43
- : m_item<
- 43
- , typename P42::first
- , typename P42::second
- , map42< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41 >
- >
-{
- typedef map43 type;
-};
-
-template<>
-struct m_at_impl<43>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item43 type;
- };
-};
-
-template<>
-struct m_item_impl<44>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item43;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43
- >
-struct map44
- : m_item<
- 44
- , typename P43::first
- , typename P43::second
- , map43< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42 >
- >
-{
- typedef map44 type;
-};
-
-template<>
-struct m_at_impl<44>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item44 type;
- };
-};
-
-template<>
-struct m_item_impl<45>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item44;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- >
-struct map45
- : m_item<
- 45
- , typename P44::first
- , typename P44::second
- , map44< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43 >
- >
-{
- typedef map45 type;
-};
-
-template<>
-struct m_at_impl<45>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item45 type;
- };
-};
-
-template<>
-struct m_item_impl<46>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item45;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45
- >
-struct map46
- : m_item<
- 46
- , typename P45::first
- , typename P45::second
- , map45< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44 >
- >
-{
- typedef map46 type;
-};
-
-template<>
-struct m_at_impl<46>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item46 type;
- };
-};
-
-template<>
-struct m_item_impl<47>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item46;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46
- >
-struct map47
- : m_item<
- 47
- , typename P46::first
- , typename P46::second
- , map46< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45 >
- >
-{
- typedef map47 type;
-};
-
-template<>
-struct m_at_impl<47>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item47 type;
- };
-};
-
-template<>
-struct m_item_impl<48>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item47;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47
- >
-struct map48
- : m_item<
- 48
- , typename P47::first
- , typename P47::second
- , map47< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46 >
- >
-{
- typedef map48 type;
-};
-
-template<>
-struct m_at_impl<48>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item48 type;
- };
-};
-
-template<>
-struct m_item_impl<49>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item48;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47, typename P48
- >
-struct map49
- : m_item<
- 49
- , typename P48::first
- , typename P48::second
- , map48< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47 >
- >
-{
- typedef map49 type;
-};
-
-template<>
-struct m_at_impl<49>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::item49 type;
- };
-};
-
-template<>
-struct m_item_impl<50>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_< Key,T,Base >
- {
- typedef pair< Key,T > item49;
- };
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47, typename P48, typename P49
- >
-struct map50
- : m_item<
- 50
- , typename P49::first
- , typename P49::second
- , map49< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48 >
- >
-{
- typedef map50 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename Map>
-struct m_at< Map,0 >
-{
- typedef typename Map::item0 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 1,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item0;
-};
-
-template<
- typename P0
- >
-struct map1
- : m_item<
- 1
- , typename P0::first
- , typename P0::second
- , map0< >
- >
-{
- typedef map1 type;
-};
-
-template< typename Map>
-struct m_at< Map,1 >
-{
- typedef typename Map::item1 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 2,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item1;
-};
-
-template<
- typename P0, typename P1
- >
-struct map2
- : m_item<
- 2
- , typename P1::first
- , typename P1::second
- , map1<P0>
- >
-{
- typedef map2 type;
-};
-
-template< typename Map>
-struct m_at< Map,2 >
-{
- typedef typename Map::item2 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 3,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item2;
-};
-
-template<
- typename P0, typename P1, typename P2
- >
-struct map3
- : m_item<
- 3
- , typename P2::first
- , typename P2::second
- , map2< P0,P1 >
- >
-{
- typedef map3 type;
-};
-
-template< typename Map>
-struct m_at< Map,3 >
-{
- typedef typename Map::item3 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 4,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item3;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3
- >
-struct map4
- : m_item<
- 4
- , typename P3::first
- , typename P3::second
- , map3< P0,P1,P2 >
- >
-{
- typedef map4 type;
-};
-
-template< typename Map>
-struct m_at< Map,4 >
-{
- typedef typename Map::item4 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 5,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item4;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- >
-struct map5
- : m_item<
- 5
- , typename P4::first
- , typename P4::second
- , map4< P0,P1,P2,P3 >
- >
-{
- typedef map5 type;
-};
-
-template< typename Map>
-struct m_at< Map,5 >
-{
- typedef typename Map::item5 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 6,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item5;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
-struct map6
- : m_item<
- 6
- , typename P5::first
- , typename P5::second
- , map5< P0,P1,P2,P3,P4 >
- >
-{
- typedef map6 type;
-};
-
-template< typename Map>
-struct m_at< Map,6 >
-{
- typedef typename Map::item6 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 7,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item6;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6
- >
-struct map7
- : m_item<
- 7
- , typename P6::first
- , typename P6::second
- , map6< P0,P1,P2,P3,P4,P5 >
- >
-{
- typedef map7 type;
-};
-
-template< typename Map>
-struct m_at< Map,7 >
-{
- typedef typename Map::item7 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 8,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item7;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7
- >
-struct map8
- : m_item<
- 8
- , typename P7::first
- , typename P7::second
- , map7< P0,P1,P2,P3,P4,P5,P6 >
- >
-{
- typedef map8 type;
-};
-
-template< typename Map>
-struct m_at< Map,8 >
-{
- typedef typename Map::item8 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 9,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item8;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8
- >
-struct map9
- : m_item<
- 9
- , typename P8::first
- , typename P8::second
- , map8< P0,P1,P2,P3,P4,P5,P6,P7 >
- >
-{
- typedef map9 type;
-};
-
-template< typename Map>
-struct m_at< Map,9 >
-{
- typedef typename Map::item9 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 10,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item9;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- >
-struct map10
- : m_item<
- 10
- , typename P9::first
- , typename P9::second
- , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 >
- >
-{
- typedef map10 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename Map>
-struct m_at< Map,10 >
-{
- typedef typename Map::item10 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 11,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item10;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10
- >
-struct map11
- : m_item<
- 11
- , typename P10::first
- , typename P10::second
- , map10< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 >
- >
-{
- typedef map11 type;
-};
-
-template< typename Map>
-struct m_at< Map,11 >
-{
- typedef typename Map::item11 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 12,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item11;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11
- >
-struct map12
- : m_item<
- 12
- , typename P11::first
- , typename P11::second
- , map11< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 >
- >
-{
- typedef map12 type;
-};
-
-template< typename Map>
-struct m_at< Map,12 >
-{
- typedef typename Map::item12 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 13,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item12;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12
- >
-struct map13
- : m_item<
- 13
- , typename P12::first
- , typename P12::second
- , map12< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11 >
- >
-{
- typedef map13 type;
-};
-
-template< typename Map>
-struct m_at< Map,13 >
-{
- typedef typename Map::item13 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 14,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item13;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13
- >
-struct map14
- : m_item<
- 14
- , typename P13::first
- , typename P13::second
- , map13< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 >
- >
-{
- typedef map14 type;
-};
-
-template< typename Map>
-struct m_at< Map,14 >
-{
- typedef typename Map::item14 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 15,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item14;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- >
-struct map15
- : m_item<
- 15
- , typename P14::first
- , typename P14::second
- , map14< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13 >
- >
-{
- typedef map15 type;
-};
-
-template< typename Map>
-struct m_at< Map,15 >
-{
- typedef typename Map::item15 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 16,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item15;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15
- >
-struct map16
- : m_item<
- 16
- , typename P15::first
- , typename P15::second
- , map15< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 >
- >
-{
- typedef map16 type;
-};
-
-template< typename Map>
-struct m_at< Map,16 >
-{
- typedef typename Map::item16 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 17,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item16;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16
- >
-struct map17
- : m_item<
- 17
- , typename P16::first
- , typename P16::second
- , map16< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15 >
- >
-{
- typedef map17 type;
-};
-
-template< typename Map>
-struct m_at< Map,17 >
-{
- typedef typename Map::item17 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 18,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item17;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17
- >
-struct map18
- : m_item<
- 18
- , typename P17::first
- , typename P17::second
- , map17< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 >
- >
-{
- typedef map18 type;
-};
-
-template< typename Map>
-struct m_at< Map,18 >
-{
- typedef typename Map::item18 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 19,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item18;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18
- >
-struct map19
- : m_item<
- 19
- , typename P18::first
- , typename P18::second
- , map18< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17 >
- >
-{
- typedef map19 type;
-};
-
-template< typename Map>
-struct m_at< Map,19 >
-{
- typedef typename Map::item19 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 20,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item19;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- >
-struct map20
- : m_item<
- 20
- , typename P19::first
- , typename P19::second
- , map19< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18 >
- >
-{
- typedef map20 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename Map>
-struct m_at< Map,20 >
-{
- typedef typename Map::item20 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 21,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item20;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20
- >
-struct map21
- : m_item<
- 21
- , typename P20::first
- , typename P20::second
- , map20< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 >
- >
-{
- typedef map21 type;
-};
-
-template< typename Map>
-struct m_at< Map,21 >
-{
- typedef typename Map::item21 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 22,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item21;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21
- >
-struct map22
- : m_item<
- 22
- , typename P21::first
- , typename P21::second
- , map21< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20 >
- >
-{
- typedef map22 type;
-};
-
-template< typename Map>
-struct m_at< Map,22 >
-{
- typedef typename Map::item22 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 23,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item22;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22
- >
-struct map23
- : m_item<
- 23
- , typename P22::first
- , typename P22::second
- , map22< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21 >
- >
-{
- typedef map23 type;
-};
-
-template< typename Map>
-struct m_at< Map,23 >
-{
- typedef typename Map::item23 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 24,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item23;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23
- >
-struct map24
- : m_item<
- 24
- , typename P23::first
- , typename P23::second
- , map23< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22 >
- >
-{
- typedef map24 type;
-};
-
-template< typename Map>
-struct m_at< Map,24 >
-{
- typedef typename Map::item24 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 25,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item24;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- >
-struct map25
- : m_item<
- 25
- , typename P24::first
- , typename P24::second
- , map24< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23 >
- >
-{
- typedef map25 type;
-};
-
-template< typename Map>
-struct m_at< Map,25 >
-{
- typedef typename Map::item25 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 26,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item25;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25
- >
-struct map26
- : m_item<
- 26
- , typename P25::first
- , typename P25::second
- , map25< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24 >
- >
-{
- typedef map26 type;
-};
-
-template< typename Map>
-struct m_at< Map,26 >
-{
- typedef typename Map::item26 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 27,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item26;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26
- >
-struct map27
- : m_item<
- 27
- , typename P26::first
- , typename P26::second
- , map26< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25 >
- >
-{
- typedef map27 type;
-};
-
-template< typename Map>
-struct m_at< Map,27 >
-{
- typedef typename Map::item27 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 28,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item27;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27
- >
-struct map28
- : m_item<
- 28
- , typename P27::first
- , typename P27::second
- , map27< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26 >
- >
-{
- typedef map28 type;
-};
-
-template< typename Map>
-struct m_at< Map,28 >
-{
- typedef typename Map::item28 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 29,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item28;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28
- >
-struct map29
- : m_item<
- 29
- , typename P28::first
- , typename P28::second
- , map28< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27 >
- >
-{
- typedef map29 type;
-};
-
-template< typename Map>
-struct m_at< Map,29 >
-{
- typedef typename Map::item29 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 30,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item29;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- >
-struct map30
- : m_item<
- 30
- , typename P29::first
- , typename P29::second
- , map29< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28 >
- >
-{
- typedef map30 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename Map>
-struct m_at< Map,30 >
-{
- typedef typename Map::item30 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 31,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item30;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30
- >
-struct map31
- : m_item<
- 31
- , typename P30::first
- , typename P30::second
- , map30< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29 >
- >
-{
- typedef map31 type;
-};
-
-template< typename Map>
-struct m_at< Map,31 >
-{
- typedef typename Map::item31 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 32,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item31;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31
- >
-struct map32
- : m_item<
- 32
- , typename P31::first
- , typename P31::second
- , map31< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30 >
- >
-{
- typedef map32 type;
-};
-
-template< typename Map>
-struct m_at< Map,32 >
-{
- typedef typename Map::item32 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 33,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item32;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32
- >
-struct map33
- : m_item<
- 33
- , typename P32::first
- , typename P32::second
- , map32< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31 >
- >
-{
- typedef map33 type;
-};
-
-template< typename Map>
-struct m_at< Map,33 >
-{
- typedef typename Map::item33 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 34,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item33;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33
- >
-struct map34
- : m_item<
- 34
- , typename P33::first
- , typename P33::second
- , map33< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32 >
- >
-{
- typedef map34 type;
-};
-
-template< typename Map>
-struct m_at< Map,34 >
-{
- typedef typename Map::item34 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 35,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item34;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- >
-struct map35
- : m_item<
- 35
- , typename P34::first
- , typename P34::second
- , map34< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33 >
- >
-{
- typedef map35 type;
-};
-
-template< typename Map>
-struct m_at< Map,35 >
-{
- typedef typename Map::item35 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 36,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item35;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35
- >
-struct map36
- : m_item<
- 36
- , typename P35::first
- , typename P35::second
- , map35< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 >
- >
-{
- typedef map36 type;
-};
-
-template< typename Map>
-struct m_at< Map,36 >
-{
- typedef typename Map::item36 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 37,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item36;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36
- >
-struct map37
- : m_item<
- 37
- , typename P36::first
- , typename P36::second
- , map36< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35 >
- >
-{
- typedef map37 type;
-};
-
-template< typename Map>
-struct m_at< Map,37 >
-{
- typedef typename Map::item37 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 38,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item37;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37
- >
-struct map38
- : m_item<
- 38
- , typename P37::first
- , typename P37::second
- , map37< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36 >
- >
-{
- typedef map38 type;
-};
-
-template< typename Map>
-struct m_at< Map,38 >
-{
- typedef typename Map::item38 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 39,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item38;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38
- >
-struct map39
- : m_item<
- 39
- , typename P38::first
- , typename P38::second
- , map38< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37 >
- >
-{
- typedef map39 type;
-};
-
-template< typename Map>
-struct m_at< Map,39 >
-{
- typedef typename Map::item39 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 40,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item39;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- >
-struct map40
- : m_item<
- 40
- , typename P39::first
- , typename P39::second
- , map39< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38 >
- >
-{
- typedef map40 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename Map>
-struct m_at< Map,40 >
-{
- typedef typename Map::item40 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 41,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item40;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40
- >
-struct map41
- : m_item<
- 41
- , typename P40::first
- , typename P40::second
- , map40< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39 >
- >
-{
- typedef map41 type;
-};
-
-template< typename Map>
-struct m_at< Map,41 >
-{
- typedef typename Map::item41 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 42,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item41;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41
- >
-struct map42
- : m_item<
- 42
- , typename P41::first
- , typename P41::second
- , map41< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40 >
- >
-{
- typedef map42 type;
-};
-
-template< typename Map>
-struct m_at< Map,42 >
-{
- typedef typename Map::item42 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 43,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item42;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42
- >
-struct map43
- : m_item<
- 43
- , typename P42::first
- , typename P42::second
- , map42< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41 >
- >
-{
- typedef map43 type;
-};
-
-template< typename Map>
-struct m_at< Map,43 >
-{
- typedef typename Map::item43 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 44,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item43;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43
- >
-struct map44
- : m_item<
- 44
- , typename P43::first
- , typename P43::second
- , map43< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42 >
- >
-{
- typedef map44 type;
-};
-
-template< typename Map>
-struct m_at< Map,44 >
-{
- typedef typename Map::item44 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 45,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item44;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- >
-struct map45
- : m_item<
- 45
- , typename P44::first
- , typename P44::second
- , map44< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43 >
- >
-{
- typedef map45 type;
-};
-
-template< typename Map>
-struct m_at< Map,45 >
-{
- typedef typename Map::item45 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 46,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item45;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45
- >
-struct map46
- : m_item<
- 46
- , typename P45::first
- , typename P45::second
- , map45< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44 >
- >
-{
- typedef map46 type;
-};
-
-template< typename Map>
-struct m_at< Map,46 >
-{
- typedef typename Map::item46 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 47,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item46;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46
- >
-struct map47
- : m_item<
- 47
- , typename P46::first
- , typename P46::second
- , map46< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45 >
- >
-{
- typedef map47 type;
-};
-
-template< typename Map>
-struct m_at< Map,47 >
-{
- typedef typename Map::item47 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 48,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item47;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47
- >
-struct map48
- : m_item<
- 48
- , typename P47::first
- , typename P47::second
- , map47< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46 >
- >
-{
- typedef map48 type;
-};
-
-template< typename Map>
-struct m_at< Map,48 >
-{
- typedef typename Map::item48 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 49,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item48;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47, typename P48
- >
-struct map49
- : m_item<
- 49
- , typename P48::first
- , typename P48::second
- , map48< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47 >
- >
-{
- typedef map49 type;
-};
-
-template< typename Map>
-struct m_at< Map,49 >
-{
- typedef typename Map::item49 type;
-};
-
-template< typename Key, typename T, typename Base >
-struct m_item< 50,Key,T,Base >
- : m_item_< Key,T,Base >
-{
- typedef pair< Key,T > item49;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47, typename P48, typename P49
- >
-struct map50
- : m_item<
- 50
- , typename P49::first
- , typename P49::second
- , map49< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48 >
- >
-{
- typedef map50 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename P0
- >
-struct map1
- : m_item<
- typename P0::first
- , typename P0::second
- , map0< >
- >
-{
- typedef map1 type;
-};
-
-template<
- typename P0, typename P1
- >
-struct map2
- : m_item<
- typename P1::first
- , typename P1::second
- , map1<P0>
- >
-{
- typedef map2 type;
-};
-
-template<
- typename P0, typename P1, typename P2
- >
-struct map3
- : m_item<
- typename P2::first
- , typename P2::second
- , map2< P0,P1 >
- >
-{
- typedef map3 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3
- >
-struct map4
- : m_item<
- typename P3::first
- , typename P3::second
- , map3< P0,P1,P2 >
- >
-{
- typedef map4 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- >
-struct map5
- : m_item<
- typename P4::first
- , typename P4::second
- , map4< P0,P1,P2,P3 >
- >
-{
- typedef map5 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5
- >
-struct map6
- : m_item<
- typename P5::first
- , typename P5::second
- , map5< P0,P1,P2,P3,P4 >
- >
-{
- typedef map6 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6
- >
-struct map7
- : m_item<
- typename P6::first
- , typename P6::second
- , map6< P0,P1,P2,P3,P4,P5 >
- >
-{
- typedef map7 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7
- >
-struct map8
- : m_item<
- typename P7::first
- , typename P7::second
- , map7< P0,P1,P2,P3,P4,P5,P6 >
- >
-{
- typedef map8 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8
- >
-struct map9
- : m_item<
- typename P8::first
- , typename P8::second
- , map8< P0,P1,P2,P3,P4,P5,P6,P7 >
- >
-{
- typedef map9 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- >
-struct map10
- : m_item<
- typename P9::first
- , typename P9::second
- , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 >
- >
-{
- typedef map10 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10
- >
-struct map11
- : m_item<
- typename P10::first
- , typename P10::second
- , map10< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 >
- >
-{
- typedef map11 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11
- >
-struct map12
- : m_item<
- typename P11::first
- , typename P11::second
- , map11< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 >
- >
-{
- typedef map12 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12
- >
-struct map13
- : m_item<
- typename P12::first
- , typename P12::second
- , map12< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11 >
- >
-{
- typedef map13 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13
- >
-struct map14
- : m_item<
- typename P13::first
- , typename P13::second
- , map13< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 >
- >
-{
- typedef map14 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- >
-struct map15
- : m_item<
- typename P14::first
- , typename P14::second
- , map14< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13 >
- >
-{
- typedef map15 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15
- >
-struct map16
- : m_item<
- typename P15::first
- , typename P15::second
- , map15< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 >
- >
-{
- typedef map16 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16
- >
-struct map17
- : m_item<
- typename P16::first
- , typename P16::second
- , map16< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15 >
- >
-{
- typedef map17 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17
- >
-struct map18
- : m_item<
- typename P17::first
- , typename P17::second
- , map17< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 >
- >
-{
- typedef map18 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18
- >
-struct map19
- : m_item<
- typename P18::first
- , typename P18::second
- , map18< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17 >
- >
-{
- typedef map19 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- >
-struct map20
- : m_item<
- typename P19::first
- , typename P19::second
- , map19< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18 >
- >
-{
- typedef map20 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20
- >
-struct map21
- : m_item<
- typename P20::first
- , typename P20::second
- , map20< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 >
- >
-{
- typedef map21 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21
- >
-struct map22
- : m_item<
- typename P21::first
- , typename P21::second
- , map21< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20 >
- >
-{
- typedef map22 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22
- >
-struct map23
- : m_item<
- typename P22::first
- , typename P22::second
- , map22< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21 >
- >
-{
- typedef map23 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23
- >
-struct map24
- : m_item<
- typename P23::first
- , typename P23::second
- , map23< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22 >
- >
-{
- typedef map24 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- >
-struct map25
- : m_item<
- typename P24::first
- , typename P24::second
- , map24< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23 >
- >
-{
- typedef map25 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25
- >
-struct map26
- : m_item<
- typename P25::first
- , typename P25::second
- , map25< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24 >
- >
-{
- typedef map26 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26
- >
-struct map27
- : m_item<
- typename P26::first
- , typename P26::second
- , map26< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25 >
- >
-{
- typedef map27 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27
- >
-struct map28
- : m_item<
- typename P27::first
- , typename P27::second
- , map27< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26 >
- >
-{
- typedef map28 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28
- >
-struct map29
- : m_item<
- typename P28::first
- , typename P28::second
- , map28< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27 >
- >
-{
- typedef map29 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- >
-struct map30
- : m_item<
- typename P29::first
- , typename P29::second
- , map29< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28 >
- >
-{
- typedef map30 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30
- >
-struct map31
- : m_item<
- typename P30::first
- , typename P30::second
- , map30< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29 >
- >
-{
- typedef map31 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31
- >
-struct map32
- : m_item<
- typename P31::first
- , typename P31::second
- , map31< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30 >
- >
-{
- typedef map32 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32
- >
-struct map33
- : m_item<
- typename P32::first
- , typename P32::second
- , map32< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31 >
- >
-{
- typedef map33 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33
- >
-struct map34
- : m_item<
- typename P33::first
- , typename P33::second
- , map33< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32 >
- >
-{
- typedef map34 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- >
-struct map35
- : m_item<
- typename P34::first
- , typename P34::second
- , map34< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33 >
- >
-{
- typedef map35 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35
- >
-struct map36
- : m_item<
- typename P35::first
- , typename P35::second
- , map35< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 >
- >
-{
- typedef map36 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36
- >
-struct map37
- : m_item<
- typename P36::first
- , typename P36::second
- , map36< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35 >
- >
-{
- typedef map37 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37
- >
-struct map38
- : m_item<
- typename P37::first
- , typename P37::second
- , map37< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36 >
- >
-{
- typedef map38 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38
- >
-struct map39
- : m_item<
- typename P38::first
- , typename P38::second
- , map38< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37 >
- >
-{
- typedef map39 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- >
-struct map40
- : m_item<
- typename P39::first
- , typename P39::second
- , map39< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38 >
- >
-{
- typedef map40 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/map/map50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40
- >
-struct map41
- : m_item<
- typename P40::first
- , typename P40::second
- , map40< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39 >
- >
-{
- typedef map41 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41
- >
-struct map42
- : m_item<
- typename P41::first
- , typename P41::second
- , map41< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40 >
- >
-{
- typedef map42 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42
- >
-struct map43
- : m_item<
- typename P42::first
- , typename P42::second
- , map42< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41 >
- >
-{
- typedef map43 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43
- >
-struct map44
- : m_item<
- typename P43::first
- , typename P43::second
- , map43< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42 >
- >
-{
- typedef map44 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- >
-struct map45
- : m_item<
- typename P44::first
- , typename P44::second
- , map44< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43 >
- >
-{
- typedef map45 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45
- >
-struct map46
- : m_item<
- typename P45::first
- , typename P45::second
- , map45< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44 >
- >
-{
- typedef map46 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46
- >
-struct map47
- : m_item<
- typename P46::first
- , typename P46::second
- , map46< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45 >
- >
-{
- typedef map47 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47
- >
-struct map48
- : m_item<
- typename P47::first
- , typename P47::second
- , map47< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46 >
- >
-{
- typedef map48 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47, typename P48
- >
-struct map49
- : m_item<
- typename P48::first
- , typename P48::second
- , map48< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47 >
- >
-{
- typedef map49 type;
-};
-
-template<
- typename P0, typename P1, typename P2, typename P3, typename P4
- , typename P5, typename P6, typename P7, typename P8, typename P9
- , typename P10, typename P11, typename P12, typename P13, typename P14
- , typename P15, typename P16, typename P17, typename P18, typename P19
- , typename P20, typename P21, typename P22, typename P23, typename P24
- , typename P25, typename P26, typename P27, typename P28, typename P29
- , typename P30, typename P31, typename P32, typename P33, typename P34
- , typename P35, typename P36, typename P37, typename P38, typename P39
- , typename P40, typename P41, typename P42, typename P43, typename P44
- , typename P45, typename P46, typename P47, typename P48, typename P49
- >
-struct map50
- : m_item<
- typename P49::first
- , typename P49::second
- , map49< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48 >
- >
-{
- typedef map50 type;
-};
-
-}}
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_SIZE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/size_impl.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct size_impl< aux::map_tag >
-{
- template< typename Map > struct apply
- : Map::size
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_SIZE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/tag.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl { namespace aux {
-
-struct map_tag;
-
-}}}
-
-#endif // BOOST_MPL_MAP_AUX_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MAP_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/aux_/value_type_impl.hpp,v $
-// $Date: 2004/09/02 15:41:00 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/value_type_fwd.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-namespace boost {
-namespace mpl {
-
-template<>
-struct value_type_impl< aux::map_tag >
-{
- template< typename Map, typename T > struct apply
- : second<T>
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MAP_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_MAP0_HPP_INCLUDED
-#define BOOST_MPL_MAP_MAP0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/map0.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/map/aux_/contains_impl.hpp>
-#include <boost/mpl/map/aux_/at_impl.hpp>
-//#include <boost/mpl/map/aux_/O1_size.hpp>
-#include <boost/mpl/map/aux_/insert_impl.hpp>
-#include <boost/mpl/map/aux_/erase_impl.hpp>
-#include <boost/mpl/map/aux_/erase_key_impl.hpp>
-#include <boost/mpl/map/aux_/has_key_impl.hpp>
-#include <boost/mpl/map/aux_/key_type_impl.hpp>
-#include <boost/mpl/map/aux_/value_type_impl.hpp>
-#include <boost/mpl/map/aux_/clear_impl.hpp>
-#include <boost/mpl/map/aux_/size_impl.hpp>
-#include <boost/mpl/map/aux_/empty_impl.hpp>
-#include <boost/mpl/map/aux_/begin_end_impl.hpp>
-#include <boost/mpl/map/aux_/iterator.hpp>
-#include <boost/mpl/map/aux_/item.hpp>
-#include <boost/mpl/map/aux_/map0.hpp>
-#include <boost/mpl/map/aux_/tag.hpp>
-
-#endif // BOOST_MPL_MAP_MAP0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_MAP10_HPP_INCLUDED
-#define BOOST_MPL_MAP_MAP10_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/map10.hpp,v $
-// $Date: 2004/09/05 09:42:58 $
-// $Revision: 1.3 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/map/map0.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER map10.hpp
-# include <boost/mpl/map/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, 10, <boost/mpl/map/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_MAP_MAP10_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_MAP20_HPP_INCLUDED
-#define BOOST_MPL_MAP_MAP20_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/map20.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/map/map10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER map20.hpp
-# include <boost/mpl/map/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/map/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_MAP_MAP20_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_MAP30_HPP_INCLUDED
-#define BOOST_MPL_MAP_MAP30_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/map30.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/map/map20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER map30.hpp
-# include <boost/mpl/map/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/map/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_MAP_MAP30_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_MAP40_HPP_INCLUDED
-#define BOOST_MPL_MAP_MAP40_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/map40.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/map/map30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER map40.hpp
-# include <boost/mpl/map/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/map/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_MAP_MAP40_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAP_MAP50_HPP_INCLUDED
-#define BOOST_MPL_MAP_MAP50_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/map/map50.hpp,v $
-// $Date: 2004/09/02 15:40:59 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/map/map40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER map50.hpp
-# include <boost/mpl/map/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/map/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_MAP_MAP50_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_FIXED_C_HPP_INCLUDED
-#define BOOST_MPL_FIXED_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/math/fixed_c.hpp,v $
-// $Date: 2004/09/02 15:41:01 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- long IntegerPart
- , unsigned long FractionPart
- >
-struct fixed_c
-{
- BOOST_STATIC_CONSTANT(long, integer_part = IntegerPart);
- BOOST_STATIC_CONSTANT(unsigned long, fraction_part = FractionPart);
- typedef fixed_c<IntegerPart, FractionPart> type;
-
- fixed_c() {}
-};
-
-}}
-
-#endif // BOOST_MPL_FIXED_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED
-#define BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/math/is_even.hpp,v $
-// $Date: 2004/09/02 15:41:01 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-namespace aux
-{
- template <class N>
- struct is_even_base
- {
- enum { value = (N::value % 2) == 0 };
- typedef bool_<value> type;
- };
-}
-#endif
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N)
- >
-struct is_even
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- : aux::is_even_base<N>::type
-#else
- : bool_<((N::value % 2) == 0)>
-#endif
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_even,(N))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, is_even)
-
-}}
-
-#endif // BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_RATIONAL_C_HPP_INCLUDED
-#define BOOST_MPL_RATIONAL_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/math/rational_c.hpp,v $
-// $Date: 2004/09/02 15:41:01 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename IntegerType
- , IntegerType N
- , IntegerType D = 1
- >
-struct rational_c
-{
- BOOST_STATIC_CONSTANT(IntegerType, numerator = N);
- BOOST_STATIC_CONSTANT(IntegerType, denominator = D);
-
- typedef rational_c<IntegerType,N,D> type;
- rational_c() {}
-};
-
-}}
-
-#endif // BOOST_MPL_RATIONAL_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAX_HPP_INCLUDED
-#define BOOST_MPL_MAX_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/max.hpp,v $
-// $Date: 2004/11/28 01:55:27 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/min_max.hpp>
-
-#endif // BOOST_MPL_MAX_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED
-#define BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/max_element.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/iter_fold.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(max_element)
-
-namespace aux {
-
-template< typename Predicate >
-struct select_max
-{
- template< typename OldIterator, typename Iterator >
- struct apply
- {
- typedef typename apply2<
- Predicate
- , typename deref<OldIterator>::type
- , typename deref<Iterator>::type
- >::type condition_;
-
- typedef typename if_<
- condition_
- , Iterator
- , OldIterator
- >::type type;
- };
-};
-
-} // namespace aux
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename Predicate = less<_,_>
- >
-struct max_element
- : iter_fold<
- Sequence
- , typename begin<Sequence>::type
- , protect< aux::select_max<Predicate> >
- >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, max_element)
-
-}}
-
-#endif // BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MIN_HPP_INCLUDED
-#define BOOST_MPL_MIN_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/min.hpp,v $
-// $Date: 2004/11/28 01:55:27 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/min_max.hpp>
-
-#endif // BOOST_MPL_MIN_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MIN_ELEMENT_HPP_INCLUDED
-#define BOOST_MPL_MIN_ELEMENT_HPP_INCLUDED
-
-// Copyright David Abrahams 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/min_element.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/max_element.hpp>
-#include <boost/mpl/not.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(min_element)
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename Predicate = less<_,_>
- >
-struct min_element
- : max_element<
- Sequence
- , mpl::not_<Predicate>
- >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, min_element)
-
-}}
-
-#endif // BOOST_MPL_MIN_ELEMENT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MAX_HPP_INCLUDED
-#define BOOST_MPL_MAX_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/min_max.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct min
- : if_< less<N1,N2>,N1,N2 >
-{
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct max
- : if_< less<N1,N2>,N2,N1 >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, min)
-BOOST_MPL_AUX_NA_SPEC(2, max)
-
-}}
-
-#endif // BOOST_MPL_MAX_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MINUS_HPP_INCLUDED
-#define BOOST_MPL_MINUS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/minus.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME minus
-#define AUX778076_OP_TOKEN -
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_MINUS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MODULUS_HPP_INCLUDED
-#define BOOST_MPL_MODULUS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/modulus.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME modulus
-#define AUX778076_OP_TOKEN %
-#define AUX778076_OP_ARITY 2
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_MODULUS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTIPLIES_HPP_INCLUDED
-#define BOOST_MPL_MULTIPLIES_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiplies.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/times.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-// backward compatibility header, deprecated
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#else
-# define AUX778076_OP_ARITY 2
-#endif
-
-template<
- BOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na)
- >
-struct multiplies
- : times< BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- AUX778076_OP_ARITY
- , multiplies
- , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC(AUX778076_OP_ARITY, multiplies)
-
-#undef AUX778076_OP_ARITY
-
-}}
-
-#endif // BOOST_MPL_MULTIPLIES_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTISET_AUX_COUNT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MULTISET_AUX_COUNT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiset/aux_/count_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/multiset/aux_/tag.hpp>
-#include <boost/mpl/count_fwd.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-# include <boost/mpl/if.hpp>
-# include <boost/type_traits/is_reference.hpp>
-#endif
-
-namespace boost { namespace mpl {
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-namespace aux {
-template< typename S, typename U >
-struct multiset_count_impl
- : int_< sizeof(S::key_count(BOOST_MPL_AUX_STATIC_CAST(U*,0))) - 1 >
-{
-};
-
-template< typename S, typename U >
-struct multiset_count_ref_impl
-{
- typedef U (* u_)();
- typedef int_< sizeof(S::ref_key_count(BOOST_MPL_AUX_STATIC_CAST(u_,0))) - 1 > type_;
- BOOST_STATIC_CONSTANT(int, value = type_::value);
- typedef type_ type;
-};
-}
-
-template<>
-struct count_impl< aux::multiset_tag >
-{
- template< typename Set, typename Key > struct apply
- : if_<
- is_reference<Key>
- , aux::multiset_count_ref_impl<Set,Key>
- , aux::multiset_count_impl<Set,Key>
- >::type
- {
- };
-};
-
-#else
-
-template<>
-struct count_impl< aux::multiset_tag >
-{
- template< typename Set, typename Key > struct apply
- {
- enum { msvc71_wknd_ = sizeof(Set::key_count(BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<Key>*,0))) - 1 };
- typedef int_< msvc71_wknd_ > type;
- BOOST_STATIC_CONSTANT(int, value = msvc71_wknd_);
- };
-};
-
-#endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-}}
-
-#endif // BOOST_MPL_MULTISET_AUX_COUNT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTISET_AUX_INSERT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_MULTISET_AUX_INSERT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiset/aux_/insert_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/multiset/aux_/item.hpp>
-#include <boost/mpl/multiset/aux_/tag.hpp>
-#include <boost/mpl/insert_fwd.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct insert_impl< aux::multiset_tag >
-{
- template< typename Set, typename Key, typename unused_ > struct apply
- {
- typedef ms_item<Key,Set> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_MULTISET_AUX_INSERT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTISET_AUX_ITEM_HPP_INCLUDED
-#define BOOST_MPL_MULTISET_AUX_ITEM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiset/aux_/item.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/multiset/aux_/tag.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/config/arrays.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/next.hpp>
-# include <boost/type_traits/is_same.hpp>
-#endif
-
-
-namespace boost { namespace mpl {
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-template< typename T, typename Base >
-struct ms_item
-{
- typedef aux::multiset_tag tag;
-
- template< typename U > struct prior_count
- {
- enum { msvc70_wknd_ = sizeof(Base::key_count(BOOST_MPL_AUX_STATIC_CAST(U*,0))) };
- typedef int_< msvc70_wknd_ > count_;
- typedef typename eval_if< is_same<T,U>, next<count_>, count_ >::type c_;
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- typedef typename aux::weighted_tag<BOOST_MPL_AUX_MSVC_VALUE_WKND(c_)::value>::type type;
-#else
- typedef char (&type)[BOOST_MPL_AUX_MSVC_VALUE_WKND(c_)::value];
-#endif
- };
-
- template< typename U > struct prior_ref_count
- {
- typedef U (* u_)();
- enum { msvc70_wknd_ = sizeof(Base::ref_key_count(BOOST_MPL_AUX_STATIC_CAST(u_,0))) };
- typedef int_< msvc70_wknd_ > count_;
- typedef typename eval_if< is_same<T,U>, next<count_>, count_ >::type c_;
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- typedef typename aux::weighted_tag<BOOST_MPL_AUX_MSVC_VALUE_WKND(c_)::value>::type type;
-#else
- typedef char (&type)[BOOST_MPL_AUX_MSVC_VALUE_WKND(c_)::value];
-#endif
- };
-
- template< typename U >
- static typename prior_count<U>::type key_count(U*);
-
- template< typename U >
- static typename prior_ref_count<U>::type ref_key_count(U (*)());
-};
-
-#else // BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-namespace aux {
-template< typename U, typename Base >
-struct prior_key_count
-{
- enum { msvc71_wknd_ = sizeof(Base::key_count(BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<U>*,0))) };
- typedef int_< msvc71_wknd_ > count_;
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- typedef typename aux::weighted_tag< BOOST_MPL_AUX_VALUE_WKND(count_)::value >::type type;
-#else
- typedef char (&type)[count_::value];
-#endif
-};
-}
-
-template< typename T, typename Base >
-struct ms_item
-{
- typedef aux::multiset_tag tag;
-
- enum { msvc71_wknd_ = sizeof(Base::key_count(BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*,0))) + 1 };
- typedef int_< msvc71_wknd_ > count_;
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- static
- typename aux::weighted_tag< BOOST_MPL_AUX_VALUE_WKND(count_)::value >::type
- key_count(aux::type_wrapper<T>*);
-#else
- static char (& key_count(aux::type_wrapper<T>*) )[count_::value];
-#endif
-
- template< typename U >
- static typename aux::prior_key_count<U,Base>::type key_count(aux::type_wrapper<U>*);
-};
-
-#endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-}}
-
-#endif // BOOST_MPL_MULTISET_AUX_ITEM_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTISET_AUX_MULTISET0_HPP_INCLUDED
-#define BOOST_MPL_MULTISET_AUX_MULTISET0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiset/aux_/multiset0.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/multiset/aux_/tag.hpp>
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace mpl {
-
-template< int dummy_ = 0 >
-struct multiset0
-{
- typedef aux::multiset_tag tag;
-
- typedef int_<1> count_;
- static char (& key_count(...) )[count_::value];
- static char (& ref_key_count(...) )[count_::value];
-};
-
-}}
-
-#endif // BOOST_MPL_MULTISET_AUX_MULTISET0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTISET_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_MULTISET_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiset/aux_/tag.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl { namespace aux {
-
-struct multiset_tag;
-
-}}}
-
-#endif // BOOST_MPL_MULTISET_AUX_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_MULTISET_MULTISET0_HPP_INCLUDED
-#define BOOST_MPL_MULTISET_MULTISET0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/multiset/multiset0.hpp,v $
-// $Date: 2004/09/02 15:41:01 $
-// $Revision: 1.2 $
-
-//#include <boost/mpl/multiset/aux_/at.hpp>
-//#include <boost/mpl/multiset/aux_/front.hpp>
-//#include <boost/mpl/multiset/aux_/push_front.hpp>
-//#include <boost/mpl/multiset/aux_/pop_front.hpp>
-//#include <boost/mpl/multiset/aux_/back.hpp>
-//#include <boost/mpl/multiset/aux_/clear.hpp>
-//#include <boost/mpl/multiset/aux_/O1_size.hpp>
-//#include <boost/mpl/multiset/aux_/size.hpp>
-//#include <boost/mpl/multiset/aux_/empty.hpp>
-//#include <boost/mpl/multiset/aux_/empty.hpp>
-#include <boost/mpl/multiset/aux_/insert_impl.hpp>
-#include <boost/mpl/multiset/aux_/count_impl.hpp>
-//#include <boost/mpl/multiset/aux_/has_key_impl.hpp>
-//#include <boost/mpl/multiset/aux_/begin_end_impl.hpp>
-//#include <boost/mpl/multiset/aux_/iterator.hpp>
-#include <boost/mpl/multiset/aux_/item.hpp>
-#include <boost/mpl/multiset/aux_/multiset0.hpp>
-#include <boost/mpl/multiset/aux_/tag.hpp>
-
-#endif // BOOST_MPL_MULTISET_MULTISET0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_NEGATE_HPP_INCLUDED
-#define BOOST_MPL_NEGATE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/negate.hpp,v $
-// $Date: 2004/09/07 09:06:08 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/integral_c.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct negate_impl;
-
-template< typename T > struct negate_tag
-{
- typedef typename T::tag type;
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N)
- >
-struct negate
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
- : negate_impl<
- typename negate_tag<N>::type
- >::template apply<N>::type
-#else
- : aux::msvc_eti_base< typename apply_wrap1<
- negate_impl< typename negate_tag<N>::type >
- , N
- >::type >::type
-#endif
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, negate)
-
-
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, T n > struct negate_wknd
-{
- BOOST_STATIC_CONSTANT(T, value = -n);
- typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct negate_impl<integral_c_tag>
-{
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
- template< typename N > struct apply
- : aux::negate_wknd< typename N::value_type, N::value >
-#else
- template< typename N > struct apply
- : integral_c< typename N::value_type, (-N::value) >
-#endif
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_NEGATE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_NEXT_HPP_INCLUDED
-#define BOOST_MPL_NEXT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/next.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/next_prior.hpp>
-
-#endif // BOOST_MPL_NEXT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/next_prior.hpp,v $
-// $Date: 2004/09/17 06:09:38 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(next)
-BOOST_MPL_AUX_COMMON_NAME_WKND(prior)
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct next
-{
- typedef typename T::next type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T))
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct prior
-{
- typedef typename T::prior type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, next)
-BOOST_MPL_AUX_NA_SPEC(1, prior)
-
-}}
-
-#endif // BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_NOT_HPP_INCLUDED
-#define BOOST_MPL_NOT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/not.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/nested_type_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here
-struct not_impl
- : bool_<!C_>
-{
-};
-
-} // namespace aux
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct not_
- : aux::not_impl<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1,not_)
-
-}}
-
-#endif // BOOST_MPL_NOT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-#define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/not_equal_to.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
-
-#define AUX778076_OP_NAME not_equal_to
-#define AUX778076_OP_TOKEN !=
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/numeric_cast.hpp,v $
-// $Date: 2005/06/26 17:14:04 $
-// $Revision: 1.9 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// agurt 21/sep/04: portability macro for the sake of MSVC 6.x-7.0;
-// resolves conflicts with 'boost::numeric_cast' function template.
-// use it in your own code _only_ if you care about compatibility with
-// these outdated compilers!
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) )
-# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
-#else
-# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast
-#endif
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename SourceTag, typename TargetTag > struct BOOST_MPL_AUX_NUMERIC_CAST
-{
- template< typename N > struct apply;
-};
-
-}}
-
-#endif // BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_OR_HPP_INCLUDED
-#define BOOST_MPL_OR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/or.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/aux_/nested_type_wknd.hpp>
-# include <boost/mpl/aux_/na_spec.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-# include <boost/mpl/aux_/config/msvc.hpp>
-
-// agurt, 19/may/04: workaround a conflict with <iso646.h> header's
-// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)'
-// has to be checked in a separate condition, otherwise GCC complains
-// about 'or' being an alternative token
-#if defined(_MSC_VER)
-#if defined(or)
-# pragma push_macro("or")
-# undef or
-# define or(x)
-#endif
-#endif
-
-# define BOOST_MPL_PREPROCESSED_HEADER or.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#if defined(_MSC_VER)
-#if defined(or)
-# pragma pop_macro("or")
-#endif
-#endif
-
-#else
-
-# define AUX778076_OP_NAME or_
-# define AUX778076_OP_VALUE1 true
-# define AUX778076_OP_VALUE2 false
-# include <boost/mpl/aux_/logical_op.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_OR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ORDER_HPP_INCLUDED
-#define BOOST_MPL_ORDER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/order.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/order_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/order_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Key)
- >
-struct order
- : order_impl< typename sequence_tag<AssociativeSequence>::type >
- ::template apply<AssociativeSequence,Key>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,order,(AssociativeSequence,Key))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, order)
-
-}}
-
-#endif // BOOST_MPL_ORDER_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ORDER_FWD_HPP_INCLUDED
-#define BOOST_MPL_ORDER_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/order_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct order_impl;
-template< typename AssociativeSequence, typename Key > struct order;
-
-}}
-
-#endif // BOOST_MPL_ORDER_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PAIR_HPP_INCLUDED
-#define BOOST_MPL_PAIR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/pair.hpp,v $
-// $Date: 2004/12/14 14:05:31 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct pair
-{
- typedef pair type;
- typedef T1 first;
- typedef T2 second;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2))
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(P)
- >
-struct first
-{
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
- typedef typename P::first type;
-#else
- typedef typename aux::msvc_eti_base<P>::first type;
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,first,(P))
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(P)
- >
-struct second
-{
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
- typedef typename P::second type;
-#else
- typedef typename aux::msvc_eti_base<P>::second type;
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,second,(P))
-};
-
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(2, pair)
-BOOST_MPL_AUX_NA_SPEC(1, first)
-BOOST_MPL_AUX_NA_SPEC(1, second)
-
-}}
-
-#endif // BOOST_MPL_PAIR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PAIR_VIEW_HPP_INCLUDED
-#define BOOST_MPL_PAIR_VIEW_HPP_INCLUDED
-
-// Copyright David Abrahams 2003-2004
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/pair_view.hpp,v $
-// $Date: 2004/11/28 01:56:21 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/iterator_category.hpp>
-#include <boost/mpl/advance.hpp>
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/min_max.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-struct pair_iter_tag;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Iter1, typename Iter2, typename Category >
-struct pair_iter;
-
-template< typename Category > struct prior_pair_iter
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- typedef typename mpl::prior<Iter1>::type i1_;
- typedef typename mpl::prior<Iter2>::type i2_;
- typedef pair_iter<i1_,i2_,Category> type;
- };
-};
-
-template<> struct prior_pair_iter<forward_iterator_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- typedef pair_iter<Iter1,Iter2,forward_iterator_tag> type;
- };
-};
-
-#endif
-}
-
-template<
- typename Iter1
- , typename Iter2
- , typename Category
- >
-struct pair_iter
-{
- typedef aux::pair_iter_tag tag;
- typedef Category category;
- typedef Iter1 first;
- typedef Iter2 second;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- typedef pair<
- typename deref<Iter1>::type
- , typename deref<Iter2>::type
- > type;
-
- typedef typename mpl::next<Iter1>::type i1_;
- typedef typename mpl::next<Iter2>::type i2_;
- typedef pair_iter<i1_,i2_,Category> next;
-
- typedef apply_wrap2< aux::prior_pair_iter<Category>,Iter1,Iter2 >::type prior;
-#endif
-};
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Iter1, typename Iter2, typename C >
-struct deref< pair_iter<Iter1,Iter2,C> >
-{
- typedef pair<
- typename deref<Iter1>::type
- , typename deref<Iter2>::type
- > type;
-};
-
-template< typename Iter1, typename Iter2, typename C >
-struct next< pair_iter<Iter1,Iter2,C> >
-{
- typedef typename mpl::next<Iter1>::type i1_;
- typedef typename mpl::next<Iter2>::type i2_;
- typedef pair_iter<i1_,i2_,C> type;
-};
-
-template< typename Iter1, typename Iter2, typename C >
-struct prior< pair_iter<Iter1,Iter2,C> >
-{
- typedef typename mpl::prior<Iter1>::type i1_;
- typedef typename mpl::prior<Iter2>::type i2_;
- typedef pair_iter<i1_,i2_,C> type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-
-template<> struct advance_impl<aux::pair_iter_tag>
-{
- template< typename Iter, typename D > struct apply
- {
- typedef typename mpl::advance< typename Iter::first,D >::type i1_;
- typedef typename mpl::advance< typename Iter::second,D >::type i2_;
- typedef pair_iter<i1_,i2_,typename Iter::category> type;
- };
-};
-
-template<> struct distance_impl<aux::pair_iter_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- // agurt, 10/nov/04: MSVC 6.5 ICE-s on forwarding
- typedef typename mpl::distance<
- typename first<Iter1>::type
- , typename first<Iter2>::type
- >::type type;
- };
-};
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence1)
- , typename BOOST_MPL_AUX_NA_PARAM(Sequence2)
- >
-struct pair_view
-{
- typedef nested_begin_end_tag tag;
-
- typedef typename begin<Sequence1>::type iter1_;
- typedef typename begin<Sequence2>::type iter2_;
- typedef typename min<
- typename iterator_category<iter1_>::type
- , typename iterator_category<iter2_>::type
- >::type category_;
-
- typedef pair_iter<iter1_,iter2_,category_> begin;
-
- typedef pair_iter<
- typename end<Sequence1>::type
- , typename end<Sequence2>::type
- , category_
- > end;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, pair_view)
-
-}}
-
-#endif // BOOST_MPL_PAIR_VIEW_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PARTITION_HPP_INCLUDED
-#define BOOST_MPL_PARTITION_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002-2003
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/partition.hpp,v $
-// $Date: 2004/11/28 01:56:21 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/stable_partition.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template <
- typename Sequence
- , typename Pred
- , typename In1
- , typename In2
- >
-struct partition_impl
- : stable_partition_impl<Sequence,Pred,In1,In2>
-{
-};
-
-template <
- typename Sequence
- , typename Pred
- , typename In1
- , typename In2
- >
-struct reverse_partition_impl
- : reverse_stable_partition_impl<Sequence,Pred,In1,In2>
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, partition)
-
-}}
-
-#endif // BOOST_MPL_PARTITION_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/placeholders.hpp,v $
-// $Date: 2004/09/16 14:08:46 $
-// $Revision: 1.4 $
-
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/arg.hpp>
-# include <boost/mpl/aux_/adl_barrier.hpp>
-
-# if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
-# define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
- using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
- /**/
-# else
-# define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
-# endif
-
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-// watch out for GNU gettext users, who #define _(x)
-#if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-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::_;
-}
-
-}}
-#endif
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#'
-/// specialization
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <boost/mpl/placeholders.hpp>))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-typedef arg<i_> BOOST_PP_CAT(_,i_);
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_))
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_);
-}
-
-}}
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_PLUS_HPP_INCLUDED
-#define BOOST_MPL_PLUS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/plus.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#define AUX778076_OP_NAME plus
-#define AUX778076_OP_TOKEN +
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_PLUS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_POP_BACK_HPP_INCLUDED
-#define BOOST_MPL_POP_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/pop_back.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/pop_back_fwd.hpp>
-#include <boost/mpl/aux_/pop_back_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct pop_back
- : pop_back_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_back,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, pop_back)
-
-}}
-
-#endif // BOOST_MPL_POP_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/pop_back_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct pop_back_impl;
-template< typename Sequence > struct pop_back;
-
-}}
-
-#endif // BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_POP_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/pop_front.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/pop_front_fwd.hpp>
-#include <boost/mpl/aux_/pop_front_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct pop_front
- : pop_front_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_front,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, pop_front)
-
-}}
-
-#endif // BOOST_MPL_POP_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/pop_front_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct pop_front_impl;
-template< typename Sequence > struct pop_front;
-
-}}
-
-#endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PRINT_HPP_INCLUDED
-#define BOOST_MPL_PRINT_HPP_INCLUDED
-
-// Copyright David Abrahams 2003
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/print.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-#if defined(BOOST_MSVC)
-# pragma warning(push, 3)
-// we only want one warning from MSVC, so turn off the other one
-# pragma warning(disable: 4307)
-#elif defined(__MWERKS__)
-# pragma warn_hidevirtual on
- struct print_base { virtual void f() {} };
-#endif
-
-#if defined(__EDG_VERSION__)
- template <class T>
- struct dependent_unsigned
- {
- static const unsigned value = 1;
- };
-#endif
-} // namespace aux
-
-
-template <class T>
-struct print
- : mpl::identity<T>
-#if defined(__MWERKS__)
- , aux::print_base
-#endif
-{
-#if defined(BOOST_MSVC)
- enum { n = sizeof(T) + -1 };
-#elif defined(__MWERKS__)
- void f(int);
-#else
- enum {
- n =
-# if defined(__EDG_VERSION__)
- aux::dependent_unsigned<T>::value > -1
-# else
- sizeof(T) > -1,
-# endif
- };
-#endif
-};
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#elif defined(__MWERKS__)
-# pragma warn_hidevirtual reset
-#endif
-
-}}
-
-#endif // BOOST_MPL_PRINT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PRIOR_HPP_INCLUDED
-#define BOOST_MPL_PRIOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/prior.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/next_prior.hpp>
-
-#endif // BOOST_MPL_PRIOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PROTECT_HPP_INCLUDED
-#define BOOST_MPL_PROTECT_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/protect.hpp,v $
-// $Date: 2004/09/07 21:37:24 $
-// $Revision: 1.10 $
-
-#include <boost/mpl/aux_/arity.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- , int not_le_ = 0
- >
-struct protect : T
-{
-#if BOOST_WORKAROUND(__EDG_VERSION__, == 238)
- typedef mpl::protect type;
-#else
- typedef protect type;
-#endif
-};
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-namespace aux {
-template< BOOST_MPL_AUX_NTTP_DECL(int, N), typename T >
-struct arity< protect<T>, N >
- : arity<T,N>
-{
-};
-} // namespace aux
-#endif
-
-BOOST_MPL_AUX_NA_SPEC_MAIN(1, protect)
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(1, 1, protect)
-#endif
-
-}}
-
-#endif // BOOST_MPL_PROTECT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_PUSH_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/push_back.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/aux_/push_back_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct push_back
- : push_back_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,T >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T))
-};
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct has_push_back
- : has_push_back_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence))
-};
-
-
-BOOST_MPL_AUX_NA_SPEC(2, push_back)
-BOOST_MPL_AUX_NA_SPEC(1, has_push_back)
-
-}}
-
-#endif // BOOST_MPL_PUSH_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/push_back_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct push_back_impl;
-template< typename Sequence, typename T > struct push_back;
-
-}}
-
-#endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/push_front.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/aux_/push_front_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct push_front
- : push_front_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence,T >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T))
-};
-
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct has_push_front
- : has_push_front_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, push_front)
-BOOST_MPL_AUX_NA_SPEC(1, has_push_front)
-
-}}
-
-#endif // BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/push_front_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct push_front_impl;
-template< typename Sequence, typename T > struct push_front;
-
-}}
-
-#endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_QUOTE_HPP_INCLUDED
-#define BOOST_MPL_QUOTE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/quote.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.5 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/void.hpp>
-# include <boost/mpl/aux_/has_type.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-# define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
-#endif
-
-#if !defined(BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \
- && defined(BOOST_MPL_CFG_NO_HAS_XXX)
-# define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER quote.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/params.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/workaround.hpp>
-
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_QUOTE_TEMPLATE)
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename T, bool has_type_ >
-struct quote_impl
- : T
-{
-};
-
-template< typename T >
-struct quote_impl<T,false>
-{
- typedef T type;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< bool > struct quote_impl
-{
- template< typename T > struct result_
- : T
- {
- };
-};
-
-template<> struct quote_impl<false>
-{
- template< typename T > struct result_
- {
- typedef T type;
- };
-};
-
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/quote.hpp>))
-#include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_QUOTE_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
- template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
- , typename Tag = void_
- >
-struct BOOST_PP_CAT(quote,i_)
-{
- template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- : quote_impl<
- F< BOOST_MPL_PP_PARAMS(i_, U) >
- , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
- >
-#else
- : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value >
- ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > >
-#endif
- {
- };
-};
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_RANGE_C_HPP_INCLUDED
-#define BOOST_MPL_RANGE_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/range_c.hpp,v $
-// $Date: 2004/11/28 01:57:09 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/integral_c.hpp>
-#include <boost/mpl/aux_/range_c/front.hpp>
-#include <boost/mpl/aux_/range_c/back.hpp>
-#include <boost/mpl/aux_/range_c/size.hpp>
-#include <boost/mpl/aux_/range_c/O1_size.hpp>
-#include <boost/mpl/aux_/range_c/empty.hpp>
-#include <boost/mpl/aux_/range_c/iterator.hpp>
-#include <boost/mpl/aux_/range_c/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T Start
- , T Finish
- >
-struct range_c
-{
- typedef aux::half_open_range_tag tag;
- typedef T value_type;
- typedef range_c type;
-
- typedef integral_c<T,Start> start;
- typedef integral_c<T,Finish> finish;
-
- typedef r_iter<start> begin;
- typedef r_iter<finish> end;
-};
-
-}}
-
-#endif // BOOST_MPL_RANGE_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_REMOVE_HPP_INCLUDED
-#define BOOST_MPL_REMOVE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/remove.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/remove_if.hpp>
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Sequence
- , typename T
- , typename Inserter
- >
-struct remove_impl
- : remove_if_impl< Sequence, same_as<T>, Inserter >
-{
-};
-
-template<
- typename Sequence
- , typename T
- , typename Inserter
- >
-struct reverse_remove_impl
- : reverse_remove_if_impl< Sequence, same_as<T>, Inserter >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove)
-
-}}
-
-#endif // BOOST_MPL_REMOVE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_REMOVE_IF_HPP_INCLUDED
-#define BOOST_MPL_REMOVE_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/remove_if.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/protect.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Pred, typename InsertOp > struct remove_if_helper
-{
- template< typename Sequence, typename U > struct apply
- {
- typedef typename eval_if<
- typename apply1<Pred,U>::type
- , identity<Sequence>
- , apply2<InsertOp,Sequence,U>
- >::type type;
- };
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename Inserter
- >
-struct remove_if_impl
- : fold<
- Sequence
- , typename Inserter::state
- , protect< aux::remove_if_helper<
- typename lambda<Predicate>::type
- , typename Inserter::operation
- > >
- >
-{
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename Inserter
- >
-struct reverse_remove_if_impl
- : reverse_fold<
- Sequence
- , typename Inserter::state
- , protect< aux::remove_if_helper<
- typename lambda<Predicate>::type
- , typename Inserter::operation
- > >
- >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if)
-
-}}
-
-#endif // BOOST_MPL_REMOVE_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_REPLACE_HPP_INCLUDED
-#define BOOST_MPL_REPLACE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright John R. Bandela 2000-2002
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/replace.hpp,v $
-// $Date: 2004/11/28 01:57:09 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/replace_if.hpp>
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Sequence
- , typename OldType
- , typename NewType
- , typename Inserter
- >
-struct replace_impl
- : replace_if_impl< Sequence, same_as<OldType>, NewType, Inserter >
-{
-};
-
-template<
- typename Sequence
- , typename OldType
- , typename NewType
- , typename Inserter
- >
-struct reverse_replace_impl
- : reverse_replace_if_impl< Sequence, same_as<OldType>, NewType, Inserter >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, replace)
-
-}}
-
-#endif // BOOST_MPL_REPLACE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_REPLACE_IF_HPP_INCLUDED
-#define BOOST_MPL_REPLACE_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright John R. Bandela 2000-2002
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/replace_if.hpp,v $
-// $Date: 2004/11/28 01:57:09 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Predicate, typename T >
-struct replace_if_op
-{
- template< typename U > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : if_<
- typename apply1<Predicate,U>::type
- , T
- , U
- >
- {
-#else
- {
- typedef typename if_<
- typename apply1<Predicate,U>::type
- , T
- , U
- >::type type;
-#endif
- };
-};
-
-
-template<
- typename Sequence
- , typename Predicate
- , typename T
- , typename Inserter
- >
-struct replace_if_impl
- : transform1_impl<
- Sequence
- , protect< aux::replace_if_op<Predicate,T> >
- , Inserter
- >
-{
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename T
- , typename Inserter
- >
-struct reverse_replace_if_impl
- : reverse_transform1_impl<
- Sequence
- , protect< aux::replace_if_op<Predicate,T> >
- , Inserter
- >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, replace_if)
-
-}}
-
-#endif // BOOST_MPL_REPLACE_IF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_REVERSE_HPP_INCLUDED
-#define BOOST_MPL_REVERSE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/reverse.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/copy.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(Inserter)
- >
-struct reverse
- : reverse_copy<
- Sequence
- , Inserter
- >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, reverse)
-
-}}
-
-#endif // BOOST_MPL_REVERSE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-#define BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/reverse_fold.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/arg.hpp>
-#include <boost/mpl/aux_/reverse_fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(State)
- , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
- , typename ForwardOp = arg<1>
- >
-struct reverse_fold
-{
- typedef typename aux::reverse_fold_impl<
- ::boost::mpl::O1_size<Sequence>::value
- , typename begin<Sequence>::type
- , typename end<Sequence>::type
- , State
- , BackwardOp
- , ForwardOp
- >::state type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
-
-}}
-
-#endif // BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Dave 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/reverse_iter_fold.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/arg.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/reverse_iter_fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(State)
- , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
- , typename ForwardOp = arg<1>
- >
-struct reverse_iter_fold
-{
- typedef typename aux::reverse_iter_fold_impl<
- ::boost::mpl::O1_size<Sequence>::value
- , typename begin<Sequence>::type
- , typename end<Sequence>::type
- , State
- , typename lambda<BackwardOp>::type
- , typename lambda<ForwardOp>::type
- >::state type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- 4
- , reverse_iter_fold
- , (Sequence,State,BackwardOp,ForwardOp)
- )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, reverse_iter_fold)
-
-}}
-
-#endif // BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED
-#define BOOST_MPL_SAME_AS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/same_as.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T1 >
-struct same_as
-{
- template< typename T2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : is_same<T1,T2>
- {
-#else
- {
- typedef typename is_same<T1,T2>::type type;
-#endif
- };
-};
-
-template< typename T1 >
-struct not_same_as
-{
- template< typename T2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
- : not_< is_same<T1,T2> >
- {
-#else
- {
- typedef typename not_< is_same<T1,T2> >::type type;
-#endif
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SAME_AS_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-#define BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/sequence_tag.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/aux_/has_tag.hpp>
-#include <boost/mpl/aux_/has_begin.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation
-// on MSVC to avoid dreadful "internal structure overflow" error
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
- || defined(BOOST_MPL_CFG_NO_HAS_XXX)
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct sequence_tag
-{
- typedef typename Sequence::tag type;
-};
-
-#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-
-// agurt, 07/feb/03: workaround for what seems to be MSVC 7.0-specific ETI issue
-
-namespace aux {
-
-template< bool >
-struct sequence_tag_impl
-{
- template< typename Sequence > struct result_
- {
- typedef typename Sequence::tag type;
- };
-};
-
-template<>
-struct sequence_tag_impl<false>
-{
- template< typename Sequence > struct result_
- {
- typedef int type;
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct sequence_tag
- : aux::sequence_tag_impl< !aux::is_msvc_eti_arg<Sequence>::value >
- ::template result_<Sequence>
-{
-};
-
-#else
-
-namespace aux {
-
-template< bool has_tag_, bool has_begin_ >
-struct sequence_tag_impl
-{
- // agurt 24/nov/02: MSVC 6.5 gets confused in 'sequence_tag_impl<true>'
- // specialization below, if we name it 'result_' here
- template< typename Sequence > struct result2_;
-};
-
-# define AUX_CLASS_SEQUENCE_TAG_SPEC(has_tag, has_begin, result_type) \
-template<> struct sequence_tag_impl<has_tag,has_begin> \
-{ \
- template< typename Sequence > struct result2_ \
- { \
- typedef result_type type; \
- }; \
-}; \
-/**/
-
-AUX_CLASS_SEQUENCE_TAG_SPEC(true, true, typename Sequence::tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(true, false, typename Sequence::tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(false, true, nested_begin_end_tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(false, false, non_sequence_tag)
-
-# undef AUX_CLASS_SEQUENCE_TAG_SPEC
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct sequence_tag
- : aux::sequence_tag_impl<
- ::boost::mpl::aux::has_tag<Sequence>::value
- , ::boost::mpl::aux::has_begin<Sequence>::value
- >::template result2_<Sequence>
-{
-};
-
-#endif // BOOST_MSVC
-
-BOOST_MPL_AUX_NA_SPEC(1, sequence_tag)
-
-}}
-
-#endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-#define BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/sequence_tag_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
-
-namespace boost { namespace mpl {
-
-struct nested_begin_end_tag;
-struct non_sequence_tag;
-
-template< typename Sequence > struct sequence_tag;
-
-}}
-
-#endif // BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_HPP_INCLUDED
-#define BOOST_MPL_SET_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/set.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_SET_HEADER \
- BOOST_PP_CAT(set, BOOST_MPL_LIMIT_SET_SIZE).hpp \
- /**/
-#else
-# define AUX778076_SET_HEADER \
- BOOST_PP_CAT(set, BOOST_MPL_LIMIT_SET_SIZE)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/set/AUX778076_SET_HEADER)
-# undef AUX778076_SET_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/set.hpp>
-
-# define AUX778076_SEQUENCE_NAME set
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_SET_SIZE
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_SET_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/at_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/at_fwd.hpp>
-#include <boost/mpl/set/aux_/has_key_impl.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/void.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct at_impl< aux::set_tag >
-{
- template< typename Set, typename T > struct apply
- {
- typedef typename if_<
- has_key_impl<aux::set_tag>::apply<Set,T>
- , T
- , void_
- >::type type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/begin_end_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/set/aux_/iterator.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct begin_impl< aux::set_tag >
-{
- template< typename Set > struct apply
- {
- typedef s_iter<Set,Set> type;
- };
-};
-
-template<>
-struct end_impl< aux::set_tag >
-{
- template< typename Set > struct apply
- {
- typedef s_iter< Set,set0<> > type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/clear_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/set/aux_/set0.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct clear_impl< aux::set_tag >
-{
- template< typename Set > struct apply
- {
- typedef set0<> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/empty_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct empty_impl< aux::set_tag >
-{
- template< typename Set > struct apply
- : not_< typename Set::size >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/erase_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/erase_fwd.hpp>
-#include <boost/mpl/set/aux_/erase_key_impl.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct erase_impl< aux::set_tag >
-{
- template<
- typename Set
- , typename Pos
- , typename unused_
- >
- struct apply
- : erase_key_impl<aux::set_tag>
- ::apply<Set,typename Pos::type>
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/erase_key_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/erase_key_fwd.hpp>
-#include <boost/mpl/set/aux_/has_key_impl.hpp>
-#include <boost/mpl/set/aux_/item.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/base.hpp>
-#include <boost/mpl/eval_if.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct erase_key_impl< aux::set_tag >
-{
- template<
- typename Set
- , typename T
- >
- struct apply
- : eval_if<
- has_key_impl<aux::set_tag>::apply<Set,T>
- , eval_if<
- is_same< T,typename Set::item_type_ >
- , base<Set>
- , identity< s_mask<T,Set> >
- >
- , identity<Set>
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/has_key_impl.hpp,v $
-// $Date: 2004/10/13 18:23:37 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/set/aux_/tag.hpp>
-#include <boost/mpl/has_key_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/overload_names.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct has_key_impl< aux::set_tag >
-{
- template< typename Set, typename T > struct apply
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
- || BOOST_WORKAROUND(__EDG_VERSION__, <= 245)
- {
- BOOST_STATIC_CONSTANT(bool, value =
- ( sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(
- Set
- , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*, 0)
- ) ) == sizeof(aux::no_tag) )
- );
-
- typedef bool_<value> type;
-
-#else // ISO98 C++
- : bool_<
- ( sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(
- Set
- , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*, 0)
- ) ) == sizeof(aux::no_tag) )
- >
- {
-#endif
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/include_preprocessed.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_HEADER \
- plain/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-# define AUX778076_HEADER \
- BOOST_PP_CAT(plain,/)##BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-
-# include BOOST_PP_STRINGIZE(boost/mpl/set/aux_/preprocessed/AUX778076_HEADER)
-
-# undef AUX778076_HEADER
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/insert_impl.hpp,v $
-// $Date: 2004/09/05 09:42:59 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/insert_fwd.hpp>
-#include <boost/mpl/set/aux_/has_key_impl.hpp>
-#include <boost/mpl/set/aux_/item.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/base.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/aux_/na.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename Set, typename T > struct set_insert_impl
- : eval_if<
- has_key_impl<aux::set_tag>::apply<Set,T>
- , identity<Set>
- , eval_if<
- is_same< T,typename Set::last_masked_ >
- , base<Set>
- , identity< s_item<T,Set> >
- >
- >
-{
-};
-}
-
-template<>
-struct insert_impl< aux::set_tag >
-{
- template<
- typename Set
- , typename PosOrKey
- , typename KeyOrNA
- >
- struct apply
- : aux::set_insert_impl<
- Set
- , typename if_na<KeyOrNA,PosOrKey>::type
- >
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/item.hpp,v $
-// $Date: 2005/06/18 22:03:09 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/prior.hpp>
-#include <boost/mpl/set/aux_/set0.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/config/arrays.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T, typename Base >
-struct s_item
- : Base
-{
- typedef s_item<T,Base> item_;
- typedef void_ last_masked_;
- typedef Base next_;
- typedef T item_type_;
- typedef item_type_ type;
- typedef Base base;
-
- typedef typename next< typename Base::size >::type size;
- typedef typename next< typename Base::order >::type order;
-
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
- typedef typename aux::weighted_tag<BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value>::type order_tag_;
-#else
- typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value];
-#endif
-
- BOOST_MPL_AUX_SET_OVERLOAD( order_tag_, ORDER_BY_KEY, s_item, aux::type_wrapper<T>* );
- BOOST_MPL_AUX_SET_OVERLOAD( aux::no_tag, IS_MASKED, s_item, aux::type_wrapper<T>* );
-};
-
-
-template< typename T, typename Base >
-struct s_mask
- : Base
-{
- typedef s_mask<T,Base> item_;
- typedef T last_masked_;
- typedef void_ item_type_;
- typedef Base base;
- typedef typename prior< typename Base::size >::type size;
-
- BOOST_MPL_AUX_SET_OVERLOAD( aux::yes_tag, IS_MASKED, s_mask, aux::type_wrapper<T>* );
-};
-
-
-template< typename T, typename Base >
-struct s_unmask
- : Base
-{
- typedef s_unmask<T,Base> item_;
- typedef void_ last_masked_;
- typedef T item_type_;
- typedef Base base;
- typedef typename next< typename Base::size >::type size;
-
- BOOST_MPL_AUX_SET_OVERLOAD( aux::no_tag, IS_MASKED, s_unmask, aux::type_wrapper<T>* );
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/iterator.hpp,v $
-// $Date: 2005/06/18 22:03:09 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/set/aux_/set0.hpp>
-#include <boost/mpl/has_key.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-// used by 's_iter_impl'
-template< typename Set, typename Tail > struct s_iter;
-
-template< typename Set, typename Tail > struct s_iter_impl
-{
- typedef Tail tail_;
- typedef forward_iterator_tag category;
- typedef typename Tail::item_::type type;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- typedef typename eval_if<
- has_key< Set,typename Tail::next_::type >
- , identity< s_iter<Set,typename Tail::next_> >
- , next< s_iter<Set,typename Tail::next_> >
- >::type next;
-#endif
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Set, typename Tail >
-struct next< s_iter<Set,Tail> >
- : eval_if<
- has_key< Set,typename Tail::next_::type >
- , identity< s_iter<Set,typename Tail::next_> >
- , next< s_iter<Set,typename Tail::next_> >
- >
-{
-};
-
-template< typename Set >
-struct next< s_iter<Set,set0<> > >
-{
- typedef s_iter<Set,set0<> > type;
-};
-
-template< typename Set, typename Tail > struct s_iter
- : s_iter_impl<Set,Tail>
-{
-};
-
-template< typename Set > struct s_iter<Set, set0<> >
-{
- typedef forward_iterator_tag category;
-};
-
-#else
-
-template< typename Set >
-struct s_end_iter
-{
- typedef forward_iterator_tag category;
- typedef s_iter<Set,set0<> > next;
-};
-
-template< typename Set, typename Tail > struct s_iter
- : if_<
- is_same< Tail,set0<> >
- , s_end_iter<Set>
- , s_iter_impl<Set,Tail>
- >::type
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/key_type_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/key_type_fwd.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct key_type_impl< aux::set_tag >
-{
- template< typename Set, typename T > struct apply
- {
- typedef T type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/numbered.hpp,v $
-// $Date: 2005/06/18 22:03:09 $
-// $Revision: 1.4 $
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-# define AUX778076_SET_TAIL(set, i_, T) \
- typename BOOST_PP_CAT(set,i_)< \
- BOOST_PP_ENUM_PARAMS(i_, T) \
- >::item_ \
- /**/
-
-#if i_ > 0
-template<
- BOOST_PP_ENUM_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(set,i_)
- : s_item<
- BOOST_PP_CAT(T,BOOST_PP_DEC(i_))
- , AUX778076_SET_TAIL(set,BOOST_PP_DEC(i_),T)
- >
-{
- typedef BOOST_PP_CAT(set,i_) type;
-};
-#endif
-
-# undef AUX778076_SET_TAIL
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/numbered_c.hpp,v $
-// $Date: 2004/11/28 01:50:43 $
-// $Revision: 1.2 $
-
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-# define AUX778076_SET_C_TAIL(set, i_, T, C) \
- BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c)< \
- T BOOST_PP_ENUM_TRAILING_PARAMS(i_, C) \
- > \
- /**/
-
-template<
- typename T
- , BOOST_PP_ENUM_PARAMS(i_, T C)
- >
-struct BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c)
- : s_item<
- integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>
- , AUX778076_SET_C_TAIL(set,BOOST_PP_DEC(i_), T, C)
- >
-{
- typedef BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c) type;
-};
-
-# undef AUX778076_SET_C_TAIL
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0
- >
-struct set1
- : s_item<
- T0
- , typename set0< >::item_
- >
-{
- typedef set1 type;
-};
-
-template<
- typename T0, typename T1
- >
-struct set2
- : s_item<
- T1
- , typename set1<T0>::item_
- >
-{
- typedef set2 type;
-};
-
-template<
- typename T0, typename T1, typename T2
- >
-struct set3
- : s_item<
- T2
- , typename set2< T0,T1 >::item_
- >
-{
- typedef set3 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3
- >
-struct set4
- : s_item<
- T3
- , typename set3< T0,T1,T2 >::item_
- >
-{
- typedef set4 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- >
-struct set5
- : s_item<
- T4
- , typename set4< T0,T1,T2,T3 >::item_
- >
-{
- typedef set5 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct set6
- : s_item<
- T5
- , typename set5< T0,T1,T2,T3,T4 >::item_
- >
-{
- typedef set6 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6
- >
-struct set7
- : s_item<
- T6
- , typename set6< T0,T1,T2,T3,T4,T5 >::item_
- >
-{
- typedef set7 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7
- >
-struct set8
- : s_item<
- T7
- , typename set7< T0,T1,T2,T3,T4,T5,T6 >::item_
- >
-{
- typedef set8 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8
- >
-struct set9
- : s_item<
- T8
- , typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::item_
- >
-{
- typedef set9 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- >
-struct set10
- : s_item<
- T9
- , typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::item_
- >
-{
- typedef set10 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0
- >
-struct set1_c
- : s_item<
- integral_c< T,C0 >
- , set0_c<T>
- >
-{
- typedef set1_c type;
-};
-
-template<
- typename T
- , T C0, T C1
- >
-struct set2_c
- : s_item<
- integral_c< T,C1 >
- , set1_c< T,C0 >
- >
-{
- typedef set2_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2
- >
-struct set3_c
- : s_item<
- integral_c< T,C2 >
- , set2_c< T,C0,C1 >
- >
-{
- typedef set3_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3
- >
-struct set4_c
- : s_item<
- integral_c< T,C3 >
- , set3_c< T,C0,C1,C2 >
- >
-{
- typedef set4_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4
- >
-struct set5_c
- : s_item<
- integral_c< T,C4 >
- , set4_c< T,C0,C1,C2,C3 >
- >
-{
- typedef set5_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5
- >
-struct set6_c
- : s_item<
- integral_c< T,C5 >
- , set5_c< T,C0,C1,C2,C3,C4 >
- >
-{
- typedef set6_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6
- >
-struct set7_c
- : s_item<
- integral_c< T,C6 >
- , set6_c< T,C0,C1,C2,C3,C4,C5 >
- >
-{
- typedef set7_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
- >
-struct set8_c
- : s_item<
- integral_c< T,C7 >
- , set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
- >
-{
- typedef set8_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
- >
-struct set9_c
- : s_item<
- integral_c< T,C8 >
- , set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
- >
-{
- typedef set9_c type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
- >
-struct set10_c
- : s_item<
- integral_c< T,C9 >
- , set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
- >
-{
- typedef set10_c type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- , typename T10
- >
-struct set11
- : s_item<
- T10
- , typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::item_
- >
-{
- typedef set11 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 set12
- : s_item<
- T11
- , typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::item_
- >
-{
- typedef set12 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 set13
- : s_item<
- T12
- , typename set12< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
- , T11 >::item_
- >
-{
- typedef set13 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 set14
- : s_item<
- T13
- , typename set13< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12 >::item_
- >
-{
- typedef set14 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 set15
- : s_item<
- T14
- , typename set14< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13 >::item_
- >
-{
- typedef set15 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 set16
- : s_item<
- T15
- , typename set15< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14 >::item_
- >
-{
- typedef set16 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 set17
- : s_item<
- T16
- , typename set16< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15 >::item_
- >
-{
- typedef set17 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 set18
- : s_item<
- T17
- , typename set17< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16 >::item_
- >
-{
- typedef set18 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 set19
- : s_item<
- T18
- , typename set18< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17 >::item_
- >
-{
- typedef set19 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, typename T19
- >
-struct set20
- : s_item<
- T19
- , typename set19< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18 >::item_
- >
-{
- typedef set20 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
- >
-struct set11_c
- : s_item<
- integral_c< T,C10 >
- , set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
- >
-{
- typedef set11_c type;
-};
-
-template<
- typename 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
- >
-struct set12_c
- : s_item<
- integral_c< T,C11 >
- , set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
- >
-{
- typedef set12_c type;
-};
-
-template<
- typename 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
- >
-struct set13_c
- : s_item<
- integral_c< T,C12 >
- , set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
- >
-{
- typedef set13_c type;
-};
-
-template<
- typename 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
- >
-struct set14_c
- : s_item<
- integral_c< T,C13 >
- , set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
- >
-{
- typedef set14_c type;
-};
-
-template<
- typename 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
- >
-struct set15_c
- : s_item<
- integral_c< T,C14 >
- , set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
- >
-{
- typedef set15_c type;
-};
-
-template<
- typename 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
- >
-struct set16_c
- : s_item<
- integral_c< T,C15 >
- , set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
- >
-{
- typedef set16_c type;
-};
-
-template<
- typename 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
- >
-struct set17_c
- : s_item<
- integral_c< T,C16 >
- , set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
- >
-{
- typedef set17_c type;
-};
-
-template<
- typename 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
- >
-struct set18_c
- : s_item<
- integral_c< T,C17 >
- , set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
- >
-{
- typedef set18_c type;
-};
-
-template<
- typename 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
- >
-struct set19_c
- : s_item<
- integral_c< T,C18 >
- , set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
- >
-{
- typedef set19_c type;
-};
-
-template<
- typename 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
- >
-struct set20_c
- : s_item<
- integral_c< T,C19 >
- , set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
- >
-{
- typedef set20_c type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20
- >
-struct set21
- : s_item<
- T20
- , typename set20< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19 >::item_
- >
-{
- typedef set21 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, typename T19
- , typename T20, typename T21
- >
-struct set22
- : s_item<
- T21
- , typename set21< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20 >::item_
- >
-{
- typedef set22 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, typename T19
- , typename T20, typename T21, typename T22
- >
-struct set23
- : s_item<
- T22
- , typename set22< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 >::item_
- >
-{
- typedef set23 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, typename T19
- , typename T20, typename T21, typename T22, typename T23
- >
-struct set24
- : s_item<
- T23
- , typename set23< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 >::item_
- >
-{
- typedef set24 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- >
-struct set25
- : s_item<
- T24
- , typename set24< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 >::item_
- >
-{
- typedef set25 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25
- >
-struct set26
- : s_item<
- T25
- , typename set25< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23
- , T24 >::item_
- >
-{
- typedef set26 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26
- >
-struct set27
- : s_item<
- T26
- , typename set26< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24
- , T25 >::item_
- >
-{
- typedef set27 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27
- >
-struct set28
- : s_item<
- T27
- , typename set27< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26 >::item_
- >
-{
- typedef set28 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28
- >
-struct set29
- : s_item<
- T28
- , typename set28< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27 >::item_
- >
-{
- typedef set29 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- >
-struct set30
- : s_item<
- T29
- , typename set29< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28 >::item_
- >
-{
- typedef set30 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- >
-struct set21_c
- : s_item<
- integral_c< T,C20 >
- , set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
- >
-{
- typedef set21_c type;
-};
-
-template<
- typename 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, T C20
- , T C21
- >
-struct set22_c
- : s_item<
- integral_c< T,C21 >
- , set21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
- >
-{
- typedef set22_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22
- >
-struct set23_c
- : s_item<
- integral_c< T,C22 >
- , set22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
- >
-{
- typedef set23_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23
- >
-struct set24_c
- : s_item<
- integral_c< T,C23 >
- , set23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
- >
-{
- typedef set24_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24
- >
-struct set25_c
- : s_item<
- integral_c< T,C24 >
- , set24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
- >
-{
- typedef set25_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25
- >
-struct set26_c
- : s_item<
- integral_c< T,C25 >
- , set25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
- >
-{
- typedef set26_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26
- >
-struct set27_c
- : s_item<
- integral_c< T,C26 >
- , set26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
- >
-{
- typedef set27_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27
- >
-struct set28_c
- : s_item<
- integral_c< T,C27 >
- , set27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
- >
-{
- typedef set28_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
- >
-struct set29_c
- : s_item<
- integral_c< T,C28 >
- , set28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
- >
-{
- typedef set29_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
- >
-struct set30_c
- : s_item<
- integral_c< T,C29 >
- , set29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
- >
-{
- typedef set30_c type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30
- >
-struct set31
- : s_item<
- T30
- , typename set30< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29 >::item_
- >
-{
- typedef set31 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31
- >
-struct set32
- : s_item<
- T31
- , typename set31< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30 >::item_
- >
-{
- typedef set32 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32
- >
-struct set33
- : s_item<
- T32
- , typename set32< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31 >::item_
- >
-{
- typedef set33 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33
- >
-struct set34
- : s_item<
- T33
- , typename set33< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32 >::item_
- >
-{
- typedef set34 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- >
-struct set35
- : s_item<
- T34
- , typename set34< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33 >::item_
- >
-{
- typedef set35 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35
- >
-struct set36
- : s_item<
- T35
- , typename set35< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34 >::item_
- >
-{
- typedef set36 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36
- >
-struct set37
- : s_item<
- T36
- , typename set36< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35 >::item_
- >
-{
- typedef set37 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37
- >
-struct set38
- : s_item<
- T37
- , typename set37< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36 >::item_
- >
-{
- typedef set38 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38
- >
-struct set39
- : s_item<
- T38
- , typename set38< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37 >::item_
- >
-{
- typedef set39 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- >
-struct set40
- : s_item<
- T39
- , typename set39< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37
- , T38 >::item_
- >
-{
- typedef set40 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- >
-struct set31_c
- : s_item<
- integral_c< T,C30 >
- , set30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
- >
-{
- typedef set31_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31
- >
-struct set32_c
- : s_item<
- integral_c< T,C31 >
- , set31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
- >
-{
- typedef set32_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32
- >
-struct set33_c
- : s_item<
- integral_c< T,C32 >
- , set32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
- >
-{
- typedef set33_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33
- >
-struct set34_c
- : s_item<
- integral_c< T,C33 >
- , set33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
- >
-{
- typedef set34_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34
- >
-struct set35_c
- : s_item<
- integral_c< T,C34 >
- , set34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
- >
-{
- typedef set35_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35
- >
-struct set36_c
- : s_item<
- integral_c< T,C35 >
- , set35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
- >
-{
- typedef set36_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36
- >
-struct set37_c
- : s_item<
- integral_c< T,C36 >
- , set36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
- >
-{
- typedef set37_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37
- >
-struct set38_c
- : s_item<
- integral_c< T,C37 >
- , set37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
- >
-{
- typedef set38_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
- >
-struct set39_c
- : s_item<
- integral_c< T,C38 >
- , set38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
- >
-{
- typedef set39_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
- >
-struct set40_c
- : s_item<
- integral_c< T,C39 >
- , set39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
- >
-{
- typedef set40_c type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40
- >
-struct set41
- : s_item<
- T40
- , typename set40< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38
- , T39 >::item_
- >
-{
- typedef set41 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41
- >
-struct set42
- : s_item<
- T41
- , typename set41< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40 >::item_
- >
-{
- typedef set42 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42
- >
-struct set43
- : s_item<
- T42
- , typename set42< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41 >::item_
- >
-{
- typedef set43 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43
- >
-struct set44
- : s_item<
- T43
- , typename set43< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42 >::item_
- >
-{
- typedef set44 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- >
-struct set45
- : s_item<
- T44
- , typename set44< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42, T43 >::item_
- >
-{
- typedef set45 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45
- >
-struct set46
- : s_item<
- T45
- , typename set45< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42, T43, T44 >::item_
- >
-{
- typedef set46 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46
- >
-struct set47
- : s_item<
- T46
- , typename set46< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42, T43, T44, T45 >::item_
- >
-{
- typedef set47 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47
- >
-struct set48
- : s_item<
- T47
- , typename set47< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42, T43, T44, T45, T46 >::item_
- >
-{
- typedef set48 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48
- >
-struct set49
- : s_item<
- T48
- , typename set48< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42, T43, T44, T45, T46, T47 >::item_
- >
-{
- typedef set49 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48, typename T49
- >
-struct set50
- : s_item<
- T49
- , typename set49< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
- , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25
- , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39
- , T40, T41, T42, T43, T44, T45, T46, T47, T48 >::item_
- >
-{
- typedef set50 type;
-};
-
-}}
+++ /dev/null
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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 "boost/mpl/set/set50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- >
-struct set41_c
- : s_item<
- integral_c< T,C40 >
- , set40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
- >
-{
- typedef set41_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41
- >
-struct set42_c
- : s_item<
- integral_c< T,C41 >
- , set41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
- >
-{
- typedef set42_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42
- >
-struct set43_c
- : s_item<
- integral_c< T,C42 >
- , set42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
- >
-{
- typedef set43_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43
- >
-struct set44_c
- : s_item<
- integral_c< T,C43 >
- , set43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
- >
-{
- typedef set44_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44
- >
-struct set45_c
- : s_item<
- integral_c< T,C44 >
- , set44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
- >
-{
- typedef set45_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45
- >
-struct set46_c
- : s_item<
- integral_c< T,C45 >
- , set45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
- >
-{
- typedef set46_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46
- >
-struct set47_c
- : s_item<
- integral_c< T,C46 >
- , set46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
- >
-{
- typedef set47_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47
- >
-struct set48_c
- : s_item<
- integral_c< T,C47 >
- , set47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
- >
-{
- typedef set48_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
- >
-struct set49_c
- : s_item<
- integral_c< T,C48 >
- , set48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
- >
-{
- typedef set49_c type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
- >
-struct set50_c
- : s_item<
- integral_c< T,C49 >
- , set49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
- >
-{
- typedef set50_c type;
-};
-
-}}
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/set0.hpp,v $
-// $Date: 2005/06/18 22:03:08 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/overload_names.hpp>
-#include <boost/mpl/aux_/config/operators.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING)
-
-# define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
- friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
-/**/
-
-# define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \
- BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
-/**/
-
-#else
-
-# define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
- static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
-/**/
-
-# define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \
- BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T); \
- using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \
-/**/
-
-#endif
-
-template< typename Dummy = na > struct set0
-{
- typedef set0<> item_;
- typedef aux::set_tag tag;
- typedef void_ last_masked_;
- typedef void_ item_type_;
- typedef item_type_ type;
- typedef long_<0> size;
- typedef long_<1> order;
-
- BOOST_MPL_AUX_SET0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, set0<>, void const volatile* );
- BOOST_MPL_AUX_SET0_OVERLOAD( aux::yes_tag, IS_MASKED, set0<>, void const volatile* );
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/size_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct size_impl< aux::set_tag >
-{
- template< typename Set > struct apply
- : Set::size
- {
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/tag.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.3 $
-
-namespace boost { namespace mpl { namespace aux {
-
-struct set_tag;
-
-}}}
-
-#endif // BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/value_type_impl.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/value_type_fwd.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct value_type_impl< aux::set_tag >
-{
- template< typename Set, typename T > struct apply
- {
- typedef T type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET0_HPP_INCLUDED
-#define BOOST_MPL_SET_SET0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set0.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/set/aux_/at_impl.hpp>
-#include <boost/mpl/set/aux_/clear_impl.hpp>
-//#include <boost/mpl/set/aux_/O1_size.hpp>
-#include <boost/mpl/set/aux_/size_impl.hpp>
-#include <boost/mpl/set/aux_/empty_impl.hpp>
-#include <boost/mpl/set/aux_/insert_impl.hpp>
-#include <boost/mpl/set/aux_/erase_impl.hpp>
-#include <boost/mpl/set/aux_/erase_key_impl.hpp>
-#include <boost/mpl/set/aux_/has_key_impl.hpp>
-#include <boost/mpl/set/aux_/key_type_impl.hpp>
-#include <boost/mpl/set/aux_/value_type_impl.hpp>
-#include <boost/mpl/set/aux_/begin_end_impl.hpp>
-#include <boost/mpl/set/aux_/iterator.hpp>
-#include <boost/mpl/set/aux_/item.hpp>
-#include <boost/mpl/set/aux_/set0.hpp>
-#include <boost/mpl/set/aux_/tag.hpp>
-
-#endif // BOOST_MPL_SET_SET0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET0_C_HPP_INCLUDED
-#define BOOST_MPL_SET_SET0_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set0_c.hpp,v $
-// $Date: 2004/11/28 01:51:10 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/set/set0.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T > struct set0_c
- : set0<>
-{
- typedef set0_c type;
- typedef T value_type;
-};
-
-}}
-
-#endif // BOOST_MPL_SET_SET0_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET10_HPP_INCLUDED
-#define BOOST_MPL_SET_SET10_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set10.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set0.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set10.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, 10, <boost/mpl/set/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET10_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET10_C_HPP_INCLUDED
-#define BOOST_MPL_SET_SET10_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set10_c.hpp,v $
-// $Date: 2004/11/28 01:51:10 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set0_c.hpp>
-# include <boost/mpl/set/set10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set10_c.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, 10, <boost/mpl/set/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET10_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET20_HPP_INCLUDED
-#define BOOST_MPL_SET_SET20_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set20.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set20.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/set/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET20_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET20_C_HPP_INCLUDED
-#define BOOST_MPL_SET_SET20_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set20_c.hpp,v $
-// $Date: 2004/11/28 01:51:10 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set10_c.hpp>
-# include <boost/mpl/set/set20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set20_c.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/set/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET20_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET30_HPP_INCLUDED
-#define BOOST_MPL_SET_SET30_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set30.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set30.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/set/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET30_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET30_C_HPP_INCLUDED
-#define BOOST_MPL_SET_SET30_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set30_c.hpp,v $
-// $Date: 2004/11/28 01:51:10 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set20_c.hpp>
-# include <boost/mpl/set/set30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set30_c.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/set/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET30_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET40_HPP_INCLUDED
-#define BOOST_MPL_SET_SET40_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set40.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set40.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/set/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET40_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET40_C_HPP_INCLUDED
-#define BOOST_MPL_SET_SET40_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set40_c.hpp,v $
-// $Date: 2004/11/28 01:51:10 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set30_c.hpp>
-# include <boost/mpl/set/set40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set40_c.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/set/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET40_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET50_HPP_INCLUDED
-#define BOOST_MPL_SET_SET50_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set50.hpp,v $
-// $Date: 2004/09/02 15:41:02 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set50.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/set/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET50_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_SET50_C_HPP_INCLUDED
-#define BOOST_MPL_SET_SET50_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set/set50_c.hpp,v $
-// $Date: 2004/11/28 01:51:10 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/set/set40_c.hpp>
-# include <boost/mpl/set/set50.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set50_c.hpp
-# include <boost/mpl/set/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/set/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_SET_SET50_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SET_C_HPP_INCLUDED
-#define BOOST_MPL_SET_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/set_c.hpp,v $
-// $Date: 2004/11/28 01:58:03 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/set.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_SET_C_HEADER \
- BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_SET_SIZE),_c).hpp \
- /**/
-#else
-# define AUX778076_SET_C_HEADER \
- BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_SET_SIZE),_c)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/set/AUX778076_SET_C_HEADER)
-# undef AUX778076_SET_C_HEADER
-# include <climits>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER set_c.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/set.hpp>
-
-# define AUX778076_SEQUENCE_NAME set_c
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_SET_SIZE
-# define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(set,n),_c)
-# define AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_SET_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED
-#define BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/shift_left.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#define AUX778076_OP_NAME shift_left
-#define AUX778076_OP_TOKEN <<
-#include <boost/mpl/aux_/shift_op.hpp>
-
-#endif // BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED
-#define BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/shift_right.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#define AUX778076_OP_NAME shift_right
-#define AUX778076_OP_TOKEN >>
-#include <boost/mpl/aux_/shift_op.hpp>
-
-#endif // BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SINGLE_VIEW_HPP_INCLUDED
-#define BOOST_MPL_SINGLE_VIEW_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/single_view.hpp,v $
-// $Date: 2004/11/28 01:58:03 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/single_element_iter.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct single_view
- : iterator_range<
- aux::sel_iter<T,0>
- , aux::sel_iter<T,1>
- >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, single_view)
-
-}}
-
-#endif // BOOST_MPL_SINGLE_VIEW_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SIZE_HPP_INCLUDED
-#define BOOST_MPL_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/size.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/size_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- >
-struct size
- : aux::msvc_eti_base<
- typename size_impl< typename sequence_tag<Sequence>::type >
- ::template apply< Sequence >::type
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1, size, (Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, size)
-
-}}
-
-#endif // BOOST_MPL_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SIZE_FWD_HPP_INCLUDED
-#define BOOST_MPL_SIZE_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/size_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct size_impl;
-template< typename Sequence > struct size;
-
-}}
-
-#endif // BOOST_MPL_SIZE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED
-#define BOOST_MPL_SIZE_T_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/size_t.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/size_t_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE std::size_t
-#define AUX_WRAPPER_NAME size_t
-#define AUX_WRAPPER_PARAMS(N) std::size_t N
-
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // BOOST_MPL_SIZE_T_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-#define BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/size_t_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/config.hpp> // make sure 'size_t' is placed into 'std'
-#include <cstddef>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< std::size_t N > struct size_t;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t)
-
-#endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SIZEOF_HPP_INCLUDED
-#define BOOST_MPL_SIZEOF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/sizeof.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/size_t.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct sizeof_
- : mpl::size_t< sizeof(T) >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,sizeof_,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, sizeof_)
-
-}}
-
-#endif // BOOST_MPL_SIZEOF_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SORT_HPP_INCLUDED
-#define BOOST_MPL_SORT_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002-2003
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/sort.hpp,v $
-// $Date: 2004/11/28 01:58:03 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/sort_impl.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, sort)
-
-}}
-
-#endif // BOOST_MPL_SORT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED
-#define BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002-2003
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/stable_partition.hpp,v $
-// $Date: 2004/11/28 01:58:27 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/protect.hpp>
-#include <boost/mpl/aux_/partition_op.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-#include <boost/mpl/aux_/na.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template <
- typename Sequence
- , typename Pred
- , typename In
- , typename In2
- , typename In1 = typename if_na<In,In2>::type
- >
-struct stable_partition_impl
- : fold<
- Sequence
- , pair< typename In1::state, typename In2::state >
- , protect< partition_op<
- Pred
- , typename In1::operation
- , typename In2::operation
- > >
- >
-{
-};
-
-template <
- typename Sequence
- , typename Pred
- , typename In
- , typename In2
- , typename In1 = typename if_na<In,In2>::type
- >
-struct reverse_stable_partition_impl
- : reverse_fold<
- Sequence
- , pair< typename In1::state, typename In2::state >
- , protect< partition_op<
- Pred
- , typename In1::operation
- , typename In2::operation
- > >
- >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, stable_partition)
-
-}}
-
-#endif // BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_SWITCH_HPP_INCLUDED
-#define BOOST_MPL_SWITCH_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/switch.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/find_if.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Body)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct switch_
-{
- typedef typename find_if<
- Body
- , apply1< lambda< first<_1> >, T >
- >::type iter_;
-
- typedef typename deref<iter_>::type pair_;
- typedef typename lambda< typename second<pair_>::type >::type f_;
- typedef typename apply1<f_,T>::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,switch_,(Body,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, switch_)
-
-}}
-
-#endif // BOOST_MPL_SWITCH_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_TAG_HPP_INCLUDED
-#define BOOST_MPL_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/tag.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/has_tag.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T > struct tag_impl
-{
- typedef typename T::tag type;
-};
-}
-
-template< typename T, typename Default = void_ > struct tag
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
- : if_<
- aux::has_tag<T>
- , aux::tag_impl<T>
- , Default
- >::type
-{
-#else
-{
- typedef typename eval_if<
- aux::has_tag<T>
- , aux::tag_impl<T>
- , Default
- >::type type;
-
-#endif
-};
-
-}}
-
-#endif // BOOST_MPL_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_TIMES_HPP_INCLUDED
-#define BOOST_MPL_TIMES_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/times.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#define AUX778076_OP_NAME times
-#define AUX778076_OP_TOKEN *
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_TIMES_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_TRANSFORM_HPP_INCLUDED
-#define BOOST_MPL_TRANSFORM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/transform.hpp,v $
-// $Date: 2004/12/20 17:18:17 $
-// $Revision: 1.10 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/pair_view.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/bind.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
- typename Seq
- , typename Op
- , typename In
- >
-struct transform1_impl
- : fold<
- Seq
- , typename In::state
- , bind2< typename lambda< typename In::operation >::type
- , _1
- , bind1< typename lambda<Op>::type, _2>
- >
- >
-{
-};
-
-template<
- typename Seq
- , typename Op
- , typename In
- >
-struct reverse_transform1_impl
- : reverse_fold<
- Seq
- , typename In::state
- , bind2< typename lambda< typename In::operation >::type
- , _1
- , bind1< typename lambda<Op>::type, _2>
- >
- >
-{
-};
-
-template<
- typename Seq1
- , typename Seq2
- , typename Op
- , typename In
- >
-struct transform2_impl
- : fold<
- pair_view<Seq1,Seq2>
- , typename In::state
- , bind2< typename lambda< typename In::operation >::type
- , _1
- , bind2<
- typename lambda<Op>::type
- , bind1<first<>,_2>
- , bind1<second<>,_2>
- >
- >
- >
-{
-};
-
-template<
- typename Seq1
- , typename Seq2
- , typename Op
- , typename In
- >
-struct reverse_transform2_impl
- : reverse_fold<
- pair_view<Seq1,Seq2>
- , typename In::state
- , bind2< typename lambda< typename In::operation >::type
- , _1
- , bind2< typename lambda< Op >::type
- , bind1<first<>,_2>
- , bind1<second<>,_2>
- >
- >
- >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, transform2)
-
-#define AUX778076_TRANSFORM_DEF(name) \
-template< \
- typename BOOST_MPL_AUX_NA_PARAM(Seq1) \
- , typename BOOST_MPL_AUX_NA_PARAM(Seq2OrOperation) \
- , typename BOOST_MPL_AUX_NA_PARAM(OperationOrInserter) \
- , typename BOOST_MPL_AUX_NA_PARAM(Inserter) \
- > \
-struct name \
-{ \
- typedef typename eval_if< \
- or_< \
- is_na<OperationOrInserter> \
- , is_lambda_expression< Seq2OrOperation > \
- , not_< is_sequence<Seq2OrOperation> > \
- > \
- , name##1<Seq1,Seq2OrOperation,OperationOrInserter> \
- , name##2<Seq1,Seq2OrOperation,OperationOrInserter,Inserter> \
- >::type type; \
-}; \
-BOOST_MPL_AUX_NA_SPEC(4, name) \
-/**/
-
-AUX778076_TRANSFORM_DEF(transform)
-AUX778076_TRANSFORM_DEF(reverse_transform)
-
-#undef AUX778076_TRANSFORM_DEF
-
-}}
-
-#endif // BOOST_MPL_TRANSFORM_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED
-#define BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/transform_view.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/transform_iter.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(F)
- >
-struct transform_view
-{
- private:
- typedef typename lambda<F>::type f_;
- typedef typename begin<Sequence>::type first_;
- typedef typename end<Sequence>::type last_;
-
- public:
- struct tag;
- typedef transform_view type;
- typedef aux::transform_iter< first_,last_,f_ > begin;
- typedef aux::transform_iter< last_,last_,f_ > end;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, transform_view)
-
-}}
-
-#endif // BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_UNIQUE_HPP_INCLUDED
-#define BOOST_MPL_UNIQUE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright John R. Bandela 2000-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/unique.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.7 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Predicate, typename Operation >
-struct unique_op
-{
- template< typename Pair, typename T > struct apply
- {
- typedef typename Pair::first seq_;
- typedef typename Pair::second prior_;
- typedef typename eval_if<
- and_< is_not_na<prior_>, apply2<Predicate,prior_,T> >
- , identity<seq_>
- , apply2<Operation,seq_,T>
- >::type new_seq_;
-
- typedef pair<new_seq_,T> type;
- };
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename Inserter
- >
-struct unique_impl
- : first< typename fold<
- Sequence
- , pair< typename Inserter::state,na >
- , protect< aux::unique_op<Predicate,typename Inserter::operation> >
- >::type >
-{
-};
-
-template<
- typename Sequence
- , typename Predicate
- , typename Inserter
- >
-struct reverse_unique_impl
- : first< typename reverse_fold<
- Sequence
- , pair< typename Inserter::state,na >
- , protect< aux::unique_op<Predicate,typename Inserter::operation> >
- >::type >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, unique)
-
-}}
-
-#endif // BOOST_MPL_UNIQUE_HPP_INCLUDED
+++ /dev/null
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_UNPACK_ARGS_HPP_INCLUDED
-#define BOOST_MPL_UNPACK_ARGS_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/unpack_args.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/at.hpp>
-# include <boost/mpl/size.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/lambda_spec.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER unpack_args.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/arity.hpp>
-# include <boost/mpl/aux_/preprocessor/repeat.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/mpl/aux_/config/forwarding.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/cat.hpp>
-
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-
-# define AUX778076_UNPACK(unused, i, Args) \
- , typename at_c<Args,i>::type \
- /**/
-
-# define AUX778076_UNPACKED_ARGS(n, Args) \
- BOOST_MPL_PP_REPEAT(n, AUX778076_UNPACK, Args) \
- /**/
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-#else
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
- template< typename F, typename Args > struct apply;
-};
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/unpack_args.hpp>))
-#include BOOST_PP_ITERATE()
-
-}
-
-template<
- typename F
- >
-struct unpack_args
-{
- template< typename Args > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- : aux::unpack_args_impl< size<Args>::value,F,Args >
-# else
- : aux::unpack_args_impl< size<Args>::value >
- ::template apply< F,Args >
-# endif
- {
-#else // BOOST_MPL_CFG_NO_NESTED_FORWARDING
- {
- typedef typename aux::unpack_args_impl<
- size<Args>::value
- , F
- , Args
- >::type type;
-#endif
- };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-# undef AUX778076_UNPACK
-# undef AUX778076_UNPACKED_ARGS
-
-}}
-
-#endif // BOOST_MPL_CFG_USE_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_UNPACK_ARGS_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#elif BOOST_PP_ITERATION_DEPTH == 1
-
-# define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename F, typename Args >
-struct unpack_args_impl<i_,F,Args>
- : BOOST_PP_CAT(apply,i_)<
- F
- AUX778076_UNPACKED_ARGS(i_, Args)
- >
-{
-};
-
-#else
-
-template<> struct unpack_args_impl<i_>
-{
- template< typename F, typename Args > struct apply
- : BOOST_PP_CAT(apply,i_)<
- F
- AUX778076_UNPACKED_ARGS(i_, Args)
- >
- {
- };
-};
-
-#endif
-
-# undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_UPPER_BOUND_HPP_INCLUDED
-#define BOOST_MPL_UPPER_BOUND_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/upper_bound.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
-#endif
-
-#if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL)
-# include <boost/mpl/minus.hpp>
-# include <boost/mpl/divides.hpp>
-# include <boost/mpl/size.hpp>
-# include <boost/mpl/advance.hpp>
-# include <boost/mpl/begin_end.hpp>
-# include <boost/mpl/long.hpp>
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/prior.hpp>
-# include <boost/mpl/deref.hpp>
-# include <boost/mpl/apply.hpp>
-# include <boost/mpl/aux_/value_wknd.hpp>
-#else
-# include <boost/mpl/find.hpp>
-# include <boost/mpl/bind.hpp>
-#endif
-
-#include <boost/config.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL)
-
-// agurt 23/oct/02: has a wrong complexity etc., but at least it works;
-// feel free to contribute a better implementation!
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- , typename Predicate = less<>
- , typename pred_ = typename lambda<Predicate>::type
- >
-struct upper_bound
- : find_if< Sequence, bind2<pred_,T,_> >
-{
-};
-
-#else
-
-namespace aux {
-
-template<
- typename Distance
- , typename Predicate
- , typename T
- , typename DeferredIterator
- >
-struct upper_bound_step_impl;
-
-template<
- typename Distance
- , typename Predicate
- , typename T
- , typename DeferredIterator
- >
-struct upper_bound_step
-{
- typedef typename eval_if<
- Distance
- , upper_bound_step_impl<Distance,Predicate,T,DeferredIterator>
- , DeferredIterator
- >::type type;
-};
-
-template<
- typename Distance
- , typename Predicate
- , typename T
- , typename DeferredIterator
- >
-struct upper_bound_step_impl
-{
- typedef typename divides< Distance, long_<2> >::type offset_;
- typedef typename DeferredIterator::type iter_;
- typedef typename advance< iter_,offset_ >::type middle_;
- typedef typename apply2<
- Predicate
- , T
- , typename deref<middle_>::type
- >::type cond_;
-
- typedef typename prior< minus< Distance, offset_ > >::type step_;
- typedef upper_bound_step< offset_,Predicate,T,DeferredIterator > step_forward_;
- typedef upper_bound_step< step_,Predicate,T,next<middle_> > step_backward_;
- typedef typename eval_if<
- cond_
- , step_forward_
- , step_backward_
- >::type type;
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- , typename Predicate = less<>
- >
-struct upper_bound
-{
- private:
- typedef typename lambda<Predicate>::type pred_;
- typedef typename size<Sequence>::type size_;
-
- public:
- typedef typename aux::upper_bound_step<
- size_,pred_,T,begin<Sequence>
- >::type type;
-};
-
-#endif // BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
-
-BOOST_MPL_AUX_NA_SPEC(2, upper_bound)
-
-}}
-
-#endif // BOOST_MPL_UPPER_BOUND_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VALUE_TYPE_HPP_INCLUDED
-#define BOOST_MPL_VALUE_TYPE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/value_type.hpp,v $
-// $Date: 2004/12/14 22:34:44 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/value_type_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence)
- , typename BOOST_MPL_AUX_NA_PARAM(T)
- >
-struct value_type
- : apply_wrap2<
- value_type_impl< typename sequence_tag<AssociativeSequence>::type >
- , AssociativeSequence, T >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,value_type,(AssociativeSequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, value_type)
-
-}}
-
-#endif // BOOST_MPL_VALUE_TYPE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED
-#define BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/value_type_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.2 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct value_type_impl;
-template< typename AssociativeSequence, typename T > struct value_type;
-
-}}
-
-#endif // BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector.hpp,v $
-// $Date: 2004/11/28 01:58:27 $
-// $Revision: 1.8 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/vector.hpp>
-# include <boost/mpl/aux_/na.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_VECTOR_HEADER \
- BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
- /**/
-#else
-# define AUX778076_VECTOR_HEADER \
- BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_HEADER)
-# undef AUX778076_VECTOR_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/vector.hpp>
-
-# define AUX778076_SEQUENCE_NAME vector
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_VECTOR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/O1_size.hpp,v $
-// $Date: 2004/09/04 01:33:47 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct O1_size_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- : Vector::size
- {
- };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct O1_size_impl< aux::vector_tag<N> >
-{
- template< typename Vector > struct apply
- : mpl::long_<N>
- {
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/at.hpp,v $
-// $Date: 2004/12/20 19:35:33 $
-// $Revision: 1.6 $
-
-#include <boost/mpl/at_fwd.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< typename Vector, long n_ >
-struct v_at_impl
-{
- typedef long_< (Vector::lower_bound_::value + n_) > index_;
- typedef __typeof__( Vector::item_(index_()) ) type;
-};
-
-
-template< typename Vector, long n_ >
-struct v_at
- : aux::wrapped_type< typename v_at_impl<Vector,n_>::type >
-{
-};
-
-template<>
-struct at_impl< aux::vector_tag >
-{
- template< typename Vector, typename N > struct apply
- : v_at<
- Vector
- , BOOST_MPL_AUX_VALUE_WKND(N)::value
- >
- {
- };
-};
-
-#else
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template< typename Vector, BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at;
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct at_impl< aux::vector_tag<n_> >
-{
- template< typename Vector, typename N > struct apply
-#if !defined(__BORLANDC__)
- : v_at<
- Vector
- , BOOST_MPL_AUX_VALUE_WKND(N)::value
- >
- {
-#else
- {
- typedef typename v_at<
- Vector
- , BOOST_MPL_AUX_VALUE_WKND(N)::value
- >::type type;
-#endif
- };
-};
-
-# else
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at_impl
-{
- template< typename V > struct result_;
-};
-
-// to work around ETI, etc.
-template<> struct v_at_impl<-1>
-{
- template< typename V > struct result_
- {
- typedef void_ type;
- };
-};
-
-} // namespace aux
-
-template< typename T, BOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct v_at
- : aux::v_at_impl<n_>::template result_<T>
-{
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/back.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/back_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct back_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- : v_at<
- Vector
- , prior<typename Vector::size>::type::value
- >
- {
- };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long n_ >
-struct back_impl< aux::vector_tag<n_> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/begin_end.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# include <boost/mpl/begin_end_fwd.hpp>
-# include <boost/mpl/vector/aux_/iterator.hpp>
-# include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct begin_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- {
- typedef v_iter<Vector,0> type;
- };
-};
-
-template<>
-struct end_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- {
- typedef v_iter<Vector,Vector::size::value> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/clear.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/vector/aux_/vector0.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct clear_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct clear_impl< aux::vector_tag<N> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/empty.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct empty_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- : is_same<
- typename Vector::lower_bound_
- , typename Vector::upper_bound_
- >
- {
- };
-};
-
-#else
-
-template<>
-struct empty_impl< aux::vector_tag<0> >
-{
- template< typename Vector > struct apply
- : true_
- {
- };
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct empty_impl< aux::vector_tag<N> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/front.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct front_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- : v_at<Vector,0>
- {
- };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct front_impl< aux::vector_tag<n_> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/include_preprocessed.hpp,v $
-// $Date: 2004/11/28 01:52:12 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-# define AUX778076_INCLUDE_DIR typeof_based
-#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-# define AUX778076_INCLUDE_DIR no_ctps
-#else
-# define AUX778076_INCLUDE_DIR plain
-#endif
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_HEADER \
- AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-# define AUX778076_HEADER \
- BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-
-# include BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
-
-# undef AUX778076_HEADER
-# undef AUX778076_INCLUDE_DIR
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/item.hpp,v $
-// $Date: 2005/05/15 00:39:04 $
-// $Revision: 1.8 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<
- typename T
- , typename Base
- , int at_front = 0
- >
-struct v_item
- : Base
-{
- typedef typename Base::upper_bound_ index_;
- typedef typename next<index_>::type upper_bound_;
- typedef typename next<typename Base::size>::type size;
- typedef Base base;
- typedef v_item type;
-
- // agurt 10/sep/04: MWCW <= 9.3 workaround here and below; the compiler
- // breaks if using declaration comes _before_ the new overload
- static aux::type_wrapper<T> item_(index_);
- using Base::item_;
-};
-
-template<
- typename T
- , typename Base
- >
-struct v_item<T,Base,1>
- : Base
-{
- typedef typename prior<typename Base::lower_bound_>::type index_;
- typedef index_ lower_bound_;
- typedef typename next<typename Base::size>::type size;
- typedef Base base;
- typedef v_item type;
-
- static aux::type_wrapper<T> item_(index_);
- using Base::item_;
-};
-
-// "erasure" item
-template<
- typename Base
- , int at_front
- >
-struct v_mask
- : Base
-{
- typedef typename prior<typename Base::upper_bound_>::type index_;
- typedef index_ upper_bound_;
- typedef typename prior<typename Base::size>::type size;
- typedef Base base;
- typedef v_mask type;
-
- static aux::type_wrapper<void_> item_(index_);
- using Base::item_;
-};
-
-template<
- typename Base
- >
-struct v_mask<Base,1>
- : Base
-{
- typedef typename Base::lower_bound_ index_;
- typedef typename next<index_>::type lower_bound_;
- typedef typename prior<typename Base::size>::type size;
- typedef Base base;
- typedef v_mask type;
-
- static aux::type_wrapper<void_> item_(index_);
- using Base::item_;
-};
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/iterator.hpp,v $
-// $Date: 2004/11/28 01:52:12 $
-// $Revision: 1.11 $
-
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/prior.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-template<
- typename Vector
- , BOOST_MPL_AUX_NTTP_DECL(long, n_)
- >
-struct v_iter
-{
- typedef aux::v_iter_tag tag;
- typedef random_access_iterator_tag category;
- typedef typename v_at<Vector,n_>::type type;
-
- typedef Vector vector_;
- typedef mpl::long_<n_> pos;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- enum {
- next_ = n_ + 1
- , prior_ = n_ - 1
- , pos_ = n_
- };
-
- typedef v_iter<Vector,next_> next;
- typedef v_iter<Vector,prior_> prior;
-#endif
-
-};
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
- typename Vector
- , BOOST_MPL_AUX_NTTP_DECL(long, n_)
- >
-struct next< v_iter<Vector,n_> >
-{
- typedef v_iter<Vector,(n_ + 1)> type;
-};
-
-template<
- typename Vector
- , BOOST_MPL_AUX_NTTP_DECL(long, n_)
- >
-struct prior< v_iter<Vector,n_> >
-{
- typedef v_iter<Vector,(n_ - 1)> type;
-};
-
-template<
- typename Vector
- , BOOST_MPL_AUX_NTTP_DECL(long, n_)
- , typename Distance
- >
-struct advance< v_iter<Vector,n_>,Distance>
-{
- typedef v_iter<
- Vector
- , (n_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(long, Distance))
- > type;
-};
-
-template<
- typename Vector
- , BOOST_MPL_AUX_NTTP_DECL(long, n_)
- , BOOST_MPL_AUX_NTTP_DECL(long, m_)
- >
-struct distance< v_iter<Vector,n_>, v_iter<Vector,m_> >
- : mpl::long_<(m_ - n_)>
-{
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<> struct advance_impl<aux::v_iter_tag>
-{
- template< typename Iterator, typename N > struct apply
- {
- enum { pos_ = Iterator::pos_, n_ = N::value };
- typedef v_iter<
- typename Iterator::vector_
- , (pos_ + n_)
- > type;
- };
-};
-
-template<> struct distance_impl<aux::v_iter_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
- typedef long_<( pos2_ - pos1_ )> type;
- BOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ ));
- };
-};
-
-#endif
-
-}}
-
-#endif // BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/numbered.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.8 $
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/repeat.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# define AUX778076_VECTOR_TAIL(vector, i_, T) \
- BOOST_PP_CAT(vector,i_)< \
- BOOST_PP_ENUM_PARAMS(i_, T) \
- > \
- /**/
-
-#if i_ > 0
-template<
- BOOST_PP_ENUM_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(vector,i_)
- : v_item<
- BOOST_PP_CAT(T,BOOST_PP_DEC(i_))
- , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),T)
- >
-{
- typedef BOOST_PP_CAT(vector,i_) type;
-};
-#endif
-
-# undef AUX778076_VECTOR_TAIL
-
-#else // "brute force" implementation
-
-# if i_ > 0
-
-template<
- BOOST_PP_ENUM_PARAMS(i_, typename T)
- >
-struct BOOST_PP_CAT(vector,i_)
-{
- typedef aux::vector_tag<i_> tag;
- typedef BOOST_PP_CAT(vector,i_) type;
-
-# define AUX778076_VECTOR_ITEM(unused, i_, unused2) \
- typedef BOOST_PP_CAT(T,i_) BOOST_PP_CAT(item,i_); \
- /**/
-
- BOOST_PP_REPEAT(i_, AUX778076_VECTOR_ITEM, unused)
-# undef AUX778076_VECTOR_ITEM
- typedef void_ BOOST_PP_CAT(item,i_);
- typedef BOOST_PP_CAT(T,BOOST_PP_DEC(i_)) back;
-
- // Borland forces us to use 'type' here (instead of the class name)
- typedef v_iter<type,0> begin;
- typedef v_iter<type,i_> end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef BOOST_PP_CAT(vector,i_)<
- T
- BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_))
- BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- {
- typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))<
- BOOST_PP_ENUM_SHIFTED_PARAMS(i_, typename Vector::item)
- > type;
- };
-};
-
-
-template<>
-struct push_back_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef BOOST_PP_CAT(vector,i_)<
- BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
- BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_))
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- {
- typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))<
- BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
- > type;
- };
-};
-
-# endif // i_ > 0
-
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template< typename V >
-struct v_at<V,i_>
-{
- typedef typename V::BOOST_PP_CAT(item,i_) type;
-};
-
-# else
-
-namespace aux {
-template<> struct v_at_impl<i_>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::BOOST_PP_CAT(item,i_) type;
- };
-};
-}
-
-template<>
-struct at_impl< aux::vector_tag<i_> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-#if i_ > 0
-template<>
-struct front_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-#endif
-
-template<>
-struct size_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- : long_<i_>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<i_> >
- : size_impl< aux::vector_tag<i_> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<i_> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/numbered_c.hpp,v $
-// $Date: 2004/11/28 01:52:12 $
-// $Revision: 1.6 $
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/repeat.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# define AUX778076_VECTOR_TAIL(vector, i_, C) \
- BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)<T \
- BOOST_PP_COMMA_IF(i_) BOOST_PP_ENUM_PARAMS(i_, C) \
- > \
- /**/
-
-#if i_ > 0
-template<
- typename T
- , BOOST_PP_ENUM_PARAMS(i_, T C)
- >
-struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
- : v_item<
- integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>
- , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),C)
- >
-{
- typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
- typedef T value_type;
-};
-#endif
-
-# undef AUX778076_VECTOR_TAIL
-
-#else // "brute force" implementation
-
-# define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \
- BOOST_PP_COMMA_IF(i_) \
- integral_c<T,BOOST_PP_CAT(param,i_)> \
- /**/
-
-template<
- typename T
- , BOOST_PP_ENUM_PARAMS(i_, T C)
- >
-struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
- : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) >
-{
- typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
- typedef T value_type;
-};
-
-# undef AUX778076_VECTOR_C_PARAM_FUNC
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/pop_back.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/pop_back_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# include <boost/mpl/vector/aux_/item.hpp>
-# include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct pop_back_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- {
- typedef v_mask<Vector,0> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/pop_front.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/pop_front_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# include <boost/mpl/vector/aux_/item.hpp>
-# include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct pop_front_impl< aux::vector_tag >
-{
- template< typename Vector > struct apply
- {
- typedef v_mask<Vector,1> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template<> struct v_at_impl<0>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item0 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<0> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<0> >
-{
- template< typename Vector > struct apply
- : long_<0>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<0> >
- : size_impl< aux::vector_tag<0> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<0> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0
- >
-struct vector1
-{
- typedef aux::vector_tag<1> tag;
- typedef vector1 type;
- typedef T0 item0;
- typedef void_ item1;
- typedef T0 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,1 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<0> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector1<
- T
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<
-
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<0> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector1<
-
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<
-
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<1>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item1 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<1> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- : long_<1>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<1> >
- : size_impl< aux::vector_tag<1> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1
- >
-struct vector2
-{
- typedef aux::vector_tag<2> tag;
- typedef vector2 type;
- typedef T0 item0;
- typedef T1 item1;
-
-
- typedef void_ item2;
- typedef T1 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,2 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<1> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector2<
- T
- ,
- typename Vector::item0
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef vector1<
- typename Vector::item1
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<1> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector2<
- typename Vector::item0
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef vector1<
- typename Vector::item0
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<2>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item2 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<2> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- : long_<2>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<2> >
- : size_impl< aux::vector_tag<2> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2
- >
-struct vector3
-{
- typedef aux::vector_tag<3> tag;
- typedef vector3 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
-
-
- typedef void_ item3;
- typedef T2 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,3 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<2> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector3<
- T
- ,
- typename Vector::item0, typename Vector::item1
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef vector2<
- typename Vector::item1, typename Vector::item2
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<2> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector3<
- typename Vector::item0, typename Vector::item1
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef vector2<
- typename Vector::item0, typename Vector::item1
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<3>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item3 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<3> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- : long_<3>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<3> >
- : size_impl< aux::vector_tag<3> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3
- >
-struct vector4
-{
- typedef aux::vector_tag<4> tag;
- typedef vector4 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
-
-
- typedef void_ item4;
- typedef T3 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,4 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<3> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector4<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef vector3<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<3> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector4<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef vector3<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<4>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item4 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<4> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- : long_<4>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<4> >
- : size_impl< aux::vector_tag<4> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- >
-struct vector5
-{
- typedef aux::vector_tag<5> tag;
- typedef vector5 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
-
-
- typedef void_ item5;
- typedef T4 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,5 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<4> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector5<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef vector4<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<4> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector5<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef vector4<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<5>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item5 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<5> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- : long_<5>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<5> >
- : size_impl< aux::vector_tag<5> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct vector6
-{
- typedef aux::vector_tag<6> tag;
- typedef vector6 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
-
-
- typedef void_ item6;
- typedef T5 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,6 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<5> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector6<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef vector5<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<5> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector6<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef vector5<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<6>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item6 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<6> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- : long_<6>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<6> >
- : size_impl< aux::vector_tag<6> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6
- >
-struct vector7
-{
- typedef aux::vector_tag<7> tag;
- typedef vector7 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
-
-
- typedef void_ item7;
- typedef T6 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,7 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<6> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector7<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef vector6<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<6> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector7<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef vector6<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<7>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item7 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<7> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- : long_<7>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<7> >
- : size_impl< aux::vector_tag<7> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7
- >
-struct vector8
-{
- typedef aux::vector_tag<8> tag;
- typedef vector8 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
-
-
- typedef void_ item8;
- typedef T7 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,8 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<7> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector8<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef vector7<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<7> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector8<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef vector7<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<8>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item8 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<8> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- : long_<8>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<8> >
- : size_impl< aux::vector_tag<8> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8
- >
-struct vector9
-{
- typedef aux::vector_tag<9> tag;
- typedef vector9 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
-
-
- typedef void_ item9;
- typedef T8 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,9 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<8> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector9<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef vector8<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<8> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector9<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef vector8<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<9>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item9 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<9> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- : long_<9>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<9> >
- : size_impl< aux::vector_tag<9> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- >
-struct vector10
-{
- typedef aux::vector_tag<10> tag;
- typedef vector10 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
-
-
- typedef void_ item10;
- typedef T9 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,10 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<9> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector10<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef vector9<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<9> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector10<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef vector9<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<10>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item10 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<10> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- : long_<10>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<10> >
- : size_impl< aux::vector_tag<10> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0
- >
-struct vector1_c
- : vector1< integral_c< T,C0 > >
-{
- typedef vector1_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1
- >
-struct vector2_c
- : vector2< integral_c< T,C0 >, integral_c< T,C1 > >
-{
- typedef vector2_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2
- >
-struct vector3_c
- : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > >
-{
- typedef vector3_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3
- >
-struct vector4_c
- : vector4<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c<T
- , C3>
- >
-{
- typedef vector4_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4
- >
-struct vector5_c
- : vector5<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >
- >
-{
- typedef vector5_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5
- >
-struct vector6_c
- : vector6<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >
- >
-{
- typedef vector6_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6
- >
-struct vector7_c
- : vector7<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c<T
- , C6>
- >
-{
- typedef vector7_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
- >
-struct vector8_c
- : vector8<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >
- >
-{
- typedef vector8_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
- >
-struct vector9_c
- : vector9<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >
- >
-{
- typedef vector9_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
- >
-struct vector10_c
- : vector10<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- >
-{
- typedef vector10_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- , typename T10
- >
-struct vector11
-{
- typedef aux::vector_tag<11> tag;
- typedef vector11 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
-
-
- typedef void_ item11;
- typedef T10 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,11 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<10> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector11<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef vector10<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<10> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector11<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef vector10<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<11>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item11 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<11> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- : long_<11>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<11> >
- : size_impl< aux::vector_tag<11> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector12
-{
- typedef aux::vector_tag<12> tag;
- typedef vector12 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
-
-
- typedef void_ item12;
- typedef T11 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,12 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<11> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector12<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef vector11<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<11> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector12<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef vector11<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<12>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item12 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<12> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- : long_<12>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<12> >
- : size_impl< aux::vector_tag<12> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector13
-{
- typedef aux::vector_tag<13> tag;
- typedef vector13 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
-
-
- typedef void_ item13;
- typedef T12 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,13 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<12> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector13<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef vector12<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<12> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector13<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef vector12<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<13>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item13 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<13> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- : long_<13>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<13> >
- : size_impl< aux::vector_tag<13> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector14
-{
- typedef aux::vector_tag<14> tag;
- typedef vector14 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
-
-
- typedef void_ item14;
- typedef T13 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,14 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<13> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector14<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef vector13<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<13> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector14<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef vector13<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<14>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item14 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<14> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- : long_<14>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<14> >
- : size_impl< aux::vector_tag<14> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector15
-{
- typedef aux::vector_tag<15> tag;
- typedef vector15 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
-
-
- typedef void_ item15;
- typedef T14 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,15 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<14> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector15<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef vector14<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<14> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector15<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef vector14<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<15>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item15 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<15> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- : long_<15>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<15> >
- : size_impl< aux::vector_tag<15> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector16
-{
- typedef aux::vector_tag<16> tag;
- typedef vector16 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
-
-
- typedef void_ item16;
- typedef T15 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,16 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<15> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector16<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef vector15<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<15> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector16<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef vector15<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<16>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item16 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<16> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- : long_<16>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<16> >
- : size_impl< aux::vector_tag<16> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector17
-{
- typedef aux::vector_tag<17> tag;
- typedef vector17 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
-
-
- typedef void_ item17;
- typedef T16 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,17 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<16> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector17<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef vector16<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<16> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector17<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef vector16<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<17>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item17 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<17> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- : long_<17>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<17> >
- : size_impl< aux::vector_tag<17> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector18
-{
- typedef aux::vector_tag<18> tag;
- typedef vector18 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
-
-
- typedef void_ item18;
- typedef T17 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,18 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<17> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector18<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef vector17<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<17> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector18<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef vector17<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<18>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item18 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<18> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- : long_<18>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<18> >
- : size_impl< aux::vector_tag<18> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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 vector19
-{
- typedef aux::vector_tag<19> tag;
- typedef vector19 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
-
-
- typedef void_ item19;
- typedef T18 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,19 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<18> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector19<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef vector18<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<18> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector19<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef vector18<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<19>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item19 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<19> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- : long_<19>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<19> >
- : size_impl< aux::vector_tag<19> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- >
-struct vector20
-{
- typedef aux::vector_tag<20> tag;
- typedef vector20 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
-
-
- typedef void_ item20;
- typedef T19 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,20 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<19> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector20<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef vector19<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<19> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector20<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef vector19<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<20>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item20 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<20> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- : long_<20>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<20> >
- : size_impl< aux::vector_tag<20> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
- >
-struct vector11_c
- : vector11<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c<T
- , C10>
- >
-{
- typedef vector11_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector12_c
- : vector12<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >
- >
-{
- typedef vector12_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector13_c
- : vector13<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- >
-{
- typedef vector13_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector14_c
- : vector14<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c<T
- , C13>
- >
-{
- typedef vector14_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector15_c
- : vector15<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >
- >
-{
- typedef vector15_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector16_c
- : vector16<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- >
-{
- typedef vector16_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector17_c
- : vector17<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c<T
- , C16>
- >
-{
- typedef vector17_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector18_c
- : vector18<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >
- >
-{
- typedef vector18_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector19_c
- : vector19<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- >
-{
- typedef vector19_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector20_c
- : vector20<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c<T
- , C19>
- >
-{
- typedef vector20_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20
- >
-struct vector21
-{
- typedef aux::vector_tag<21> tag;
- typedef vector21 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
-
-
- typedef void_ item21;
- typedef T20 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,21 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<20> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector21<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef vector20<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<20> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector21<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef vector20<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<21>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item21 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<21> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- : long_<21>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<21> >
- : size_impl< aux::vector_tag<21> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21
- >
-struct vector22
-{
- typedef aux::vector_tag<22> tag;
- typedef vector22 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
-
-
- typedef void_ item22;
- typedef T21 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,22 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<21> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector22<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef vector21<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<21> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector22<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef vector21<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<22>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item22 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<22> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- : long_<22>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<22> >
- : size_impl< aux::vector_tag<22> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22
- >
-struct vector23
-{
- typedef aux::vector_tag<23> tag;
- typedef vector23 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
-
-
- typedef void_ item23;
- typedef T22 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,23 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<22> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector23<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef vector22<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<22> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector23<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef vector22<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<23>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item23 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<23> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- : long_<23>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<23> >
- : size_impl< aux::vector_tag<23> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23
- >
-struct vector24
-{
- typedef aux::vector_tag<24> tag;
- typedef vector24 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
-
-
- typedef void_ item24;
- typedef T23 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,24 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<23> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector24<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef vector23<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<23> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector24<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef vector23<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<24>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item24 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<24> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- : long_<24>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<24> >
- : size_impl< aux::vector_tag<24> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- >
-struct vector25
-{
- typedef aux::vector_tag<25> tag;
- typedef vector25 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
-
-
- typedef void_ item25;
- typedef T24 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,25 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<24> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector25<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef vector24<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<24> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector25<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef vector24<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<25>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item25 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<25> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- : long_<25>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<25> >
- : size_impl< aux::vector_tag<25> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25
- >
-struct vector26
-{
- typedef aux::vector_tag<26> tag;
- typedef vector26 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
-
-
- typedef void_ item26;
- typedef T25 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,26 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<25> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector26<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef vector25<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<25> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector26<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef vector25<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<26>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item26 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<26> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- : long_<26>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<26> >
- : size_impl< aux::vector_tag<26> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26
- >
-struct vector27
-{
- typedef aux::vector_tag<27> tag;
- typedef vector27 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
-
-
- typedef void_ item27;
- typedef T26 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,27 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<26> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector27<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef vector26<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<26> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector27<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef vector26<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<27>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item27 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<27> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- : long_<27>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<27> >
- : size_impl< aux::vector_tag<27> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27
- >
-struct vector28
-{
- typedef aux::vector_tag<28> tag;
- typedef vector28 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
-
-
- typedef void_ item28;
- typedef T27 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,28 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<27> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector28<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef vector27<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<27> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector28<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef vector27<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<28>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item28 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<28> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- : long_<28>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<28> >
- : size_impl< aux::vector_tag<28> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28
- >
-struct vector29
-{
- typedef aux::vector_tag<29> tag;
- typedef vector29 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
-
-
- typedef void_ item29;
- typedef T28 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,29 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<28> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector29<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef vector28<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<28> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector29<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef vector28<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<29>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item29 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<29> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- : long_<29>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<29> >
- : size_impl< aux::vector_tag<29> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- >
-struct vector30
-{
- typedef aux::vector_tag<30> tag;
- typedef vector30 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
-
-
- typedef void_ item30;
- typedef T29 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,30 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<29> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector30<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef vector29<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<29> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector30<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef vector29<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<30>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item30 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<30> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- : long_<30>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<30> >
- : size_impl< aux::vector_tag<30> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- >
-struct vector21_c
- : vector21<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >
- >
-{
- typedef vector21_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21
- >
-struct vector22_c
- : vector22<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- >
-{
- typedef vector22_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22
- >
-struct vector23_c
- : vector23<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c<T
- , C22>
- >
-{
- typedef vector23_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23
- >
-struct vector24_c
- : vector24<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >
- >
-{
- typedef vector24_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24
- >
-struct vector25_c
- : vector25<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- >
-{
- typedef vector25_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25
- >
-struct vector26_c
- : vector26<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c<T
- , C25>
- >
-{
- typedef vector26_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26
- >
-struct vector27_c
- : vector27<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >
- >
-{
- typedef vector27_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27
- >
-struct vector28_c
- : vector28<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- >
-{
- typedef vector28_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
- >
-struct vector29_c
- : vector29<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c<T
- , C28>
- >
-{
- typedef vector29_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
- >
-struct vector30_c
- : vector30<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >
- >
-{
- typedef vector30_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30
- >
-struct vector31
-{
- typedef aux::vector_tag<31> tag;
- typedef vector31 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
-
-
- typedef void_ item31;
- typedef T30 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,31 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<30> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector31<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef vector30<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<30> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector31<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef vector30<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<31>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item31 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<31> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- : long_<31>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<31> >
- : size_impl< aux::vector_tag<31> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31
- >
-struct vector32
-{
- typedef aux::vector_tag<32> tag;
- typedef vector32 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
-
-
- typedef void_ item32;
- typedef T31 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,32 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<31> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector32<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef vector31<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<31> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector32<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef vector31<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<32>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item32 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<32> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- : long_<32>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<32> >
- : size_impl< aux::vector_tag<32> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32
- >
-struct vector33
-{
- typedef aux::vector_tag<33> tag;
- typedef vector33 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
-
-
- typedef void_ item33;
- typedef T32 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,33 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<32> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector33<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef vector32<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<32> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector33<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef vector32<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<33>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item33 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<33> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- : long_<33>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<33> >
- : size_impl< aux::vector_tag<33> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33
- >
-struct vector34
-{
- typedef aux::vector_tag<34> tag;
- typedef vector34 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
-
-
- typedef void_ item34;
- typedef T33 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,34 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<33> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector34<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef vector33<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<33> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector34<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef vector33<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<34>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item34 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<34> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- : long_<34>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<34> >
- : size_impl< aux::vector_tag<34> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- >
-struct vector35
-{
- typedef aux::vector_tag<35> tag;
- typedef vector35 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
-
-
- typedef void_ item35;
- typedef T34 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,35 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<34> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector35<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef vector34<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<34> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector35<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef vector34<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<35>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item35 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<35> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- : long_<35>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<35> >
- : size_impl< aux::vector_tag<35> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35
- >
-struct vector36
-{
- typedef aux::vector_tag<36> tag;
- typedef vector36 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
-
-
- typedef void_ item36;
- typedef T35 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,36 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<35> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector36<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef vector35<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<35> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector36<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef vector35<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<36>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item36 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<36> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- : long_<36>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<36> >
- : size_impl< aux::vector_tag<36> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36
- >
-struct vector37
-{
- typedef aux::vector_tag<37> tag;
- typedef vector37 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
-
-
- typedef void_ item37;
- typedef T36 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,37 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<36> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector37<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef vector36<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<36> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector37<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef vector36<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<37>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item37 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<37> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- : long_<37>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<37> >
- : size_impl< aux::vector_tag<37> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37
- >
-struct vector38
-{
- typedef aux::vector_tag<38> tag;
- typedef vector38 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
-
-
- typedef void_ item38;
- typedef T37 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,38 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<37> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector38<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef vector37<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<37> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector38<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef vector37<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<38>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item38 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<38> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- : long_<38>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<38> >
- : size_impl< aux::vector_tag<38> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38
- >
-struct vector39
-{
- typedef aux::vector_tag<39> tag;
- typedef vector39 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
-
-
- typedef void_ item39;
- typedef T38 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,39 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<38> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector39<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef vector38<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<38> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector39<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef vector38<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<39>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item39 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<39> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- : long_<39>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<39> >
- : size_impl< aux::vector_tag<39> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- >
-struct vector40
-{
- typedef aux::vector_tag<40> tag;
- typedef vector40 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
-
-
- typedef void_ item40;
- typedef T39 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,40 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<39> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector40<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef vector39<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<39> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector40<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef vector39<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<40>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item40 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<40> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- : long_<40>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<40> >
- : size_impl< aux::vector_tag<40> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- >
-struct vector31_c
- : vector31<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- >
-{
- typedef vector31_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31
- >
-struct vector32_c
- : vector32<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c<T
- , C31>
- >
-{
- typedef vector32_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32
- >
-struct vector33_c
- : vector33<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >
- >
-{
- typedef vector33_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33
- >
-struct vector34_c
- : vector34<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- >
-{
- typedef vector34_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34
- >
-struct vector35_c
- : vector35<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c<T
- , C34>
- >
-{
- typedef vector35_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35
- >
-struct vector36_c
- : vector36<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >
- >
-{
- typedef vector36_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36
- >
-struct vector37_c
- : vector37<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- >
-{
- typedef vector37_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37
- >
-struct vector38_c
- : vector38<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c<T
- , C37>
- >
-{
- typedef vector38_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
- >
-struct vector39_c
- : vector39<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >
- >
-{
- typedef vector39_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
- >
-struct vector40_c
- : vector40<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- >
-{
- typedef vector40_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40
- >
-struct vector41
-{
- typedef aux::vector_tag<41> tag;
- typedef vector41 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
-
-
- typedef void_ item41;
- typedef T40 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,41 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<40> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector41<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef vector40<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<40> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector41<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef vector40<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<41>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item41 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<41> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- : long_<41>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<41> >
- : size_impl< aux::vector_tag<41> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41
- >
-struct vector42
-{
- typedef aux::vector_tag<42> tag;
- typedef vector42 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
-
-
- typedef void_ item42;
- typedef T41 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,42 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<41> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector42<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef vector41<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<41> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector42<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef vector41<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<42>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item42 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<42> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- : long_<42>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<42> >
- : size_impl< aux::vector_tag<42> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42
- >
-struct vector43
-{
- typedef aux::vector_tag<43> tag;
- typedef vector43 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
-
-
- typedef void_ item43;
- typedef T42 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,43 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<42> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector43<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef vector42<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<42> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector43<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef vector42<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<43>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item43 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<43> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- : long_<43>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<43> >
- : size_impl< aux::vector_tag<43> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43
- >
-struct vector44
-{
- typedef aux::vector_tag<44> tag;
- typedef vector44 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
-
-
- typedef void_ item44;
- typedef T43 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,44 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<43> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector44<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef vector43<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<43> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector44<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef vector43<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<44>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item44 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<44> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- : long_<44>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<44> >
- : size_impl< aux::vector_tag<44> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- >
-struct vector45
-{
- typedef aux::vector_tag<45> tag;
- typedef vector45 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
-
-
- typedef void_ item45;
- typedef T44 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,45 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<44> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector45<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef vector44<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<44> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector45<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef vector44<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<45>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item45 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<45> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- : long_<45>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<45> >
- : size_impl< aux::vector_tag<45> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45
- >
-struct vector46
-{
- typedef aux::vector_tag<46> tag;
- typedef vector46 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
-
-
- typedef void_ item46;
- typedef T45 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,46 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<45> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector46<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef vector45<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<45> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector46<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef vector45<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<46>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item46 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<46> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- : long_<46>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<46> >
- : size_impl< aux::vector_tag<46> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46
- >
-struct vector47
-{
- typedef aux::vector_tag<47> tag;
- typedef vector47 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
-
-
- typedef void_ item47;
- typedef T46 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,47 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<46> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector47<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef vector46<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<46> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector47<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef vector46<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<47>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item47 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<47> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- : long_<47>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<47> >
- : size_impl< aux::vector_tag<47> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47
- >
-struct vector48
-{
- typedef aux::vector_tag<48> tag;
- typedef vector48 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
- typedef T47 item47;
-
-
- typedef void_ item48;
- typedef T47 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,48 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<47> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector48<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef vector47<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- , typename Vector::item47
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<47> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector48<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef vector47<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<48>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item48 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<48> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- : long_<48>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<48> >
- : size_impl< aux::vector_tag<48> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48
- >
-struct vector49
-{
- typedef aux::vector_tag<49> tag;
- typedef vector49 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
- typedef T47 item47;
- typedef T48 item48;
-
-
- typedef void_ item49;
- typedef T48 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,49 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<48> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector49<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef vector48<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- , typename Vector::item47, typename Vector::item48
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<48> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector49<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef vector48<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<49>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item49 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<49> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- : long_<49>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<49> >
- : size_impl< aux::vector_tag<49> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48, typename T49
- >
-struct vector50
-{
- typedef aux::vector_tag<50> tag;
- typedef vector50 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
- typedef T47 item47;
- typedef T48 item48;
- typedef T49 item49;
-
-
- typedef void_ item50;
- typedef T49 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,50 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<49> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector50<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- , typename Vector::item48
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef vector49<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- , typename Vector::item47, typename Vector::item48
- , typename Vector::item49
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<49> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector50<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- , typename Vector::item48
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef vector49<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- , typename Vector::item48
- > type;
- };
-};
-
-namespace aux {
-template<> struct v_at_impl<50>
-{
- template< typename V_ > struct result_
- {
- typedef typename V_::item50 type;
- };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<50> >
-{
- template< typename V_, typename N > struct apply
- {
- typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
- ::template result_<V_>::type type;
- };
-};
-
-template<>
-struct front_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::item0 type;
- };
-};
-
-template<>
-struct back_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef typename Vector::back type;
- };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- : false_
- {
- };
-};
-
-template<>
-struct size_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- : long_<50>
- {
- };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<50> >
- : size_impl< aux::vector_tag<50> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<> type;
- };
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- >
-struct vector41_c
- : vector41<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c<T
- , C40>
- >
-{
- typedef vector41_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41
- >
-struct vector42_c
- : vector42<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >
- >
-{
- typedef vector42_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42
- >
-struct vector43_c
- : vector43<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- >
-{
- typedef vector43_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43
- >
-struct vector44_c
- : vector44<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c<T
- , C43>
- >
-{
- typedef vector44_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44
- >
-struct vector45_c
- : vector45<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >
- >
-{
- typedef vector45_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45
- >
-struct vector46_c
- : vector46<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- >
-{
- typedef vector46_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46
- >
-struct vector47_c
- : vector47<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c<T
- , C46>
- >
-{
- typedef vector47_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47
- >
-struct vector48_c
- : vector48<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- , integral_c< T,C46 >, integral_c< T,C47 >
- >
-{
- typedef vector48_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
- >
-struct vector49_c
- : vector49<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >
- >
-{
- typedef vector49_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
- >
-struct vector50_c
- : vector50<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c<T
- , C49>
- >
-{
- typedef vector50_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename V >
-struct v_at< V,0 >
-{
- typedef typename V::item0 type;
-};
-
-template<
- typename T0
- >
-struct vector1
-{
- typedef aux::vector_tag<1> tag;
- typedef vector1 type;
- typedef T0 item0;
- typedef void_ item1;
- typedef T0 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,1 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<0> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector1<
- T
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<
-
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<0> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector1<
-
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<1> >
-{
- template< typename Vector > struct apply
- {
- typedef vector0<
-
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,1 >
-{
- typedef typename V::item1 type;
-};
-
-template<
- typename T0, typename T1
- >
-struct vector2
-{
- typedef aux::vector_tag<2> tag;
- typedef vector2 type;
- typedef T0 item0;
- typedef T1 item1;
-
-
- typedef void_ item2;
- typedef T1 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,2 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<1> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector2<
- T
- ,
- typename Vector::item0
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef vector1<
- typename Vector::item1
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<1> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector2<
- typename Vector::item0
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<2> >
-{
- template< typename Vector > struct apply
- {
- typedef vector1<
- typename Vector::item0
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,2 >
-{
- typedef typename V::item2 type;
-};
-
-template<
- typename T0, typename T1, typename T2
- >
-struct vector3
-{
- typedef aux::vector_tag<3> tag;
- typedef vector3 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
-
-
- typedef void_ item3;
- typedef T2 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,3 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<2> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector3<
- T
- ,
- typename Vector::item0, typename Vector::item1
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef vector2<
- typename Vector::item1, typename Vector::item2
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<2> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector3<
- typename Vector::item0, typename Vector::item1
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<3> >
-{
- template< typename Vector > struct apply
- {
- typedef vector2<
- typename Vector::item0, typename Vector::item1
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,3 >
-{
- typedef typename V::item3 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3
- >
-struct vector4
-{
- typedef aux::vector_tag<4> tag;
- typedef vector4 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
-
-
- typedef void_ item4;
- typedef T3 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,4 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<3> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector4<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef vector3<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<3> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector4<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<4> >
-{
- template< typename Vector > struct apply
- {
- typedef vector3<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,4 >
-{
- typedef typename V::item4 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- >
-struct vector5
-{
- typedef aux::vector_tag<5> tag;
- typedef vector5 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
-
-
- typedef void_ item5;
- typedef T4 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,5 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<4> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector5<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef vector4<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<4> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector5<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<5> >
-{
- template< typename Vector > struct apply
- {
- typedef vector4<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,5 >
-{
- typedef typename V::item5 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct vector6
-{
- typedef aux::vector_tag<6> tag;
- typedef vector6 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
-
-
- typedef void_ item6;
- typedef T5 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,6 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<5> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector6<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef vector5<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<5> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector6<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<6> >
-{
- template< typename Vector > struct apply
- {
- typedef vector5<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,6 >
-{
- typedef typename V::item6 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6
- >
-struct vector7
-{
- typedef aux::vector_tag<7> tag;
- typedef vector7 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
-
-
- typedef void_ item7;
- typedef T6 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,7 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<6> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector7<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef vector6<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<6> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector7<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<7> >
-{
- template< typename Vector > struct apply
- {
- typedef vector6<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,7 >
-{
- typedef typename V::item7 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7
- >
-struct vector8
-{
- typedef aux::vector_tag<8> tag;
- typedef vector8 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
-
-
- typedef void_ item8;
- typedef T7 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,8 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<7> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector8<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef vector7<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<7> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector8<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<8> >
-{
- template< typename Vector > struct apply
- {
- typedef vector7<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,8 >
-{
- typedef typename V::item8 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8
- >
-struct vector9
-{
- typedef aux::vector_tag<9> tag;
- typedef vector9 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
-
-
- typedef void_ item9;
- typedef T8 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,9 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<8> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector9<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef vector8<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<8> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector9<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<9> >
-{
- template< typename Vector > struct apply
- {
- typedef vector8<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,9 >
-{
- typedef typename V::item9 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- >
-struct vector10
-{
- typedef aux::vector_tag<10> tag;
- typedef vector10 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
-
-
- typedef void_ item10;
- typedef T9 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,10 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<9> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector10<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef vector9<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<9> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector10<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<10> >
-{
- template< typename Vector > struct apply
- {
- typedef vector9<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,10 >
-{
- typedef typename V::item10 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0
- >
-struct vector1_c
- : vector1< integral_c< T,C0 > >
-{
- typedef vector1_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1
- >
-struct vector2_c
- : vector2< integral_c< T,C0 >, integral_c< T,C1 > >
-{
- typedef vector2_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2
- >
-struct vector3_c
- : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > >
-{
- typedef vector3_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3
- >
-struct vector4_c
- : vector4<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c<T
- , C3>
- >
-{
- typedef vector4_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4
- >
-struct vector5_c
- : vector5<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >
- >
-{
- typedef vector5_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5
- >
-struct vector6_c
- : vector6<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >
- >
-{
- typedef vector6_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6
- >
-struct vector7_c
- : vector7<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c<T
- , C6>
- >
-{
- typedef vector7_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
- >
-struct vector8_c
- : vector8<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >
- >
-{
- typedef vector8_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
- >
-struct vector9_c
- : vector9<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >
- >
-{
- typedef vector9_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
- >
-struct vector10_c
- : vector10<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- >
-{
- typedef vector10_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- , typename T10
- >
-struct vector11
-{
- typedef aux::vector_tag<11> tag;
- typedef vector11 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
-
-
- typedef void_ item11;
- typedef T10 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,11 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<10> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector11<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef vector10<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<10> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector11<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<11> >
-{
- template< typename Vector > struct apply
- {
- typedef vector10<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,11 >
-{
- typedef typename V::item11 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 vector12
-{
- typedef aux::vector_tag<12> tag;
- typedef vector12 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
-
-
- typedef void_ item12;
- typedef T11 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,12 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<11> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector12<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef vector11<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<11> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector12<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<12> >
-{
- template< typename Vector > struct apply
- {
- typedef vector11<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,12 >
-{
- typedef typename V::item12 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 vector13
-{
- typedef aux::vector_tag<13> tag;
- typedef vector13 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
-
-
- typedef void_ item13;
- typedef T12 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,13 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<12> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector13<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef vector12<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<12> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector13<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<13> >
-{
- template< typename Vector > struct apply
- {
- typedef vector12<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,13 >
-{
- typedef typename V::item13 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 vector14
-{
- typedef aux::vector_tag<14> tag;
- typedef vector14 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
-
-
- typedef void_ item14;
- typedef T13 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,14 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<13> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector14<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef vector13<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<13> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector14<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<14> >
-{
- template< typename Vector > struct apply
- {
- typedef vector13<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,14 >
-{
- typedef typename V::item14 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 vector15
-{
- typedef aux::vector_tag<15> tag;
- typedef vector15 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
-
-
- typedef void_ item15;
- typedef T14 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,15 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<14> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector15<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef vector14<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<14> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector15<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<15> >
-{
- template< typename Vector > struct apply
- {
- typedef vector14<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,15 >
-{
- typedef typename V::item15 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 vector16
-{
- typedef aux::vector_tag<16> tag;
- typedef vector16 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
-
-
- typedef void_ item16;
- typedef T15 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,16 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<15> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector16<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef vector15<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<15> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector16<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<16> >
-{
- template< typename Vector > struct apply
- {
- typedef vector15<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,16 >
-{
- typedef typename V::item16 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 vector17
-{
- typedef aux::vector_tag<17> tag;
- typedef vector17 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
-
-
- typedef void_ item17;
- typedef T16 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,17 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<16> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector17<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef vector16<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<16> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector17<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<17> >
-{
- template< typename Vector > struct apply
- {
- typedef vector16<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,17 >
-{
- typedef typename V::item17 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 vector18
-{
- typedef aux::vector_tag<18> tag;
- typedef vector18 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
-
-
- typedef void_ item18;
- typedef T17 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,18 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<17> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector18<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef vector17<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<17> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector18<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<18> >
-{
- template< typename Vector > struct apply
- {
- typedef vector17<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,18 >
-{
- typedef typename V::item18 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 vector19
-{
- typedef aux::vector_tag<19> tag;
- typedef vector19 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
-
-
- typedef void_ item19;
- typedef T18 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,19 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<18> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector19<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef vector18<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<18> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector19<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<19> >
-{
- template< typename Vector > struct apply
- {
- typedef vector18<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,19 >
-{
- typedef typename V::item19 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, typename T19
- >
-struct vector20
-{
- typedef aux::vector_tag<20> tag;
- typedef vector20 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
-
-
- typedef void_ item20;
- typedef T19 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,20 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<19> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector20<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef vector19<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<19> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector20<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<20> >
-{
- template< typename Vector > struct apply
- {
- typedef vector19<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,20 >
-{
- typedef typename V::item20 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
- >
-struct vector11_c
- : vector11<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c<T
- , C10>
- >
-{
- typedef vector11_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector12_c
- : vector12<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >
- >
-{
- typedef vector12_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector13_c
- : vector13<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- >
-{
- typedef vector13_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector14_c
- : vector14<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c<T
- , C13>
- >
-{
- typedef vector14_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector15_c
- : vector15<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >
- >
-{
- typedef vector15_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector16_c
- : vector16<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- >
-{
- typedef vector16_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector17_c
- : vector17<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c<T
- , C16>
- >
-{
- typedef vector17_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector18_c
- : vector18<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >
- >
-{
- typedef vector18_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector19_c
- : vector19<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- >
-{
- typedef vector19_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector20_c
- : vector20<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c<T
- , C19>
- >
-{
- typedef vector20_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20
- >
-struct vector21
-{
- typedef aux::vector_tag<21> tag;
- typedef vector21 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
-
-
- typedef void_ item21;
- typedef T20 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,21 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<20> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector21<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef vector20<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<20> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector21<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<21> >
-{
- template< typename Vector > struct apply
- {
- typedef vector20<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,21 >
-{
- typedef typename V::item21 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, typename T19
- , typename T20, typename T21
- >
-struct vector22
-{
- typedef aux::vector_tag<22> tag;
- typedef vector22 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
-
-
- typedef void_ item22;
- typedef T21 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,22 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<21> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector22<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef vector21<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<21> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector22<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<22> >
-{
- template< typename Vector > struct apply
- {
- typedef vector21<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,22 >
-{
- typedef typename V::item22 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, typename T19
- , typename T20, typename T21, typename T22
- >
-struct vector23
-{
- typedef aux::vector_tag<23> tag;
- typedef vector23 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
-
-
- typedef void_ item23;
- typedef T22 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,23 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<22> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector23<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef vector22<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<22> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector23<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<23> >
-{
- template< typename Vector > struct apply
- {
- typedef vector22<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,23 >
-{
- typedef typename V::item23 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, typename T19
- , typename T20, typename T21, typename T22, typename T23
- >
-struct vector24
-{
- typedef aux::vector_tag<24> tag;
- typedef vector24 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
-
-
- typedef void_ item24;
- typedef T23 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,24 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<23> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector24<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef vector23<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<23> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector24<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<24> >
-{
- template< typename Vector > struct apply
- {
- typedef vector23<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,24 >
-{
- typedef typename V::item24 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- >
-struct vector25
-{
- typedef aux::vector_tag<25> tag;
- typedef vector25 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
-
-
- typedef void_ item25;
- typedef T24 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,25 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<24> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector25<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef vector24<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<24> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector25<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<25> >
-{
- template< typename Vector > struct apply
- {
- typedef vector24<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,25 >
-{
- typedef typename V::item25 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25
- >
-struct vector26
-{
- typedef aux::vector_tag<26> tag;
- typedef vector26 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
-
-
- typedef void_ item26;
- typedef T25 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,26 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<25> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector26<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef vector25<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<25> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector26<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<26> >
-{
- template< typename Vector > struct apply
- {
- typedef vector25<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,26 >
-{
- typedef typename V::item26 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26
- >
-struct vector27
-{
- typedef aux::vector_tag<27> tag;
- typedef vector27 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
-
-
- typedef void_ item27;
- typedef T26 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,27 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<26> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector27<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef vector26<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<26> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector27<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<27> >
-{
- template< typename Vector > struct apply
- {
- typedef vector26<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,27 >
-{
- typedef typename V::item27 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27
- >
-struct vector28
-{
- typedef aux::vector_tag<28> tag;
- typedef vector28 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
-
-
- typedef void_ item28;
- typedef T27 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,28 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<27> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector28<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef vector27<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<27> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector28<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<28> >
-{
- template< typename Vector > struct apply
- {
- typedef vector27<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,28 >
-{
- typedef typename V::item28 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28
- >
-struct vector29
-{
- typedef aux::vector_tag<29> tag;
- typedef vector29 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
-
-
- typedef void_ item29;
- typedef T28 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,29 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<28> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector29<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef vector28<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<28> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector29<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<29> >
-{
- template< typename Vector > struct apply
- {
- typedef vector28<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,29 >
-{
- typedef typename V::item29 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- >
-struct vector30
-{
- typedef aux::vector_tag<30> tag;
- typedef vector30 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
-
-
- typedef void_ item30;
- typedef T29 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,30 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<29> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector30<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef vector29<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<29> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector30<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<30> >
-{
- template< typename Vector > struct apply
- {
- typedef vector29<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,30 >
-{
- typedef typename V::item30 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- >
-struct vector21_c
- : vector21<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >
- >
-{
- typedef vector21_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21
- >
-struct vector22_c
- : vector22<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- >
-{
- typedef vector22_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22
- >
-struct vector23_c
- : vector23<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c<T
- , C22>
- >
-{
- typedef vector23_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23
- >
-struct vector24_c
- : vector24<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >
- >
-{
- typedef vector24_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24
- >
-struct vector25_c
- : vector25<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- >
-{
- typedef vector25_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25
- >
-struct vector26_c
- : vector26<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c<T
- , C25>
- >
-{
- typedef vector26_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26
- >
-struct vector27_c
- : vector27<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >
- >
-{
- typedef vector27_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27
- >
-struct vector28_c
- : vector28<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- >
-{
- typedef vector28_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
- >
-struct vector29_c
- : vector29<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c<T
- , C28>
- >
-{
- typedef vector29_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
- >
-struct vector30_c
- : vector30<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >
- >
-{
- typedef vector30_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30
- >
-struct vector31
-{
- typedef aux::vector_tag<31> tag;
- typedef vector31 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
-
-
- typedef void_ item31;
- typedef T30 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,31 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<30> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector31<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef vector30<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<30> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector31<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<31> >
-{
- template< typename Vector > struct apply
- {
- typedef vector30<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,31 >
-{
- typedef typename V::item31 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31
- >
-struct vector32
-{
- typedef aux::vector_tag<32> tag;
- typedef vector32 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
-
-
- typedef void_ item32;
- typedef T31 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,32 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<31> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector32<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef vector31<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<31> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector32<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<32> >
-{
- template< typename Vector > struct apply
- {
- typedef vector31<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,32 >
-{
- typedef typename V::item32 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32
- >
-struct vector33
-{
- typedef aux::vector_tag<33> tag;
- typedef vector33 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
-
-
- typedef void_ item33;
- typedef T32 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,33 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<32> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector33<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef vector32<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<32> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector33<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<33> >
-{
- template< typename Vector > struct apply
- {
- typedef vector32<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,33 >
-{
- typedef typename V::item33 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33
- >
-struct vector34
-{
- typedef aux::vector_tag<34> tag;
- typedef vector34 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
-
-
- typedef void_ item34;
- typedef T33 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,34 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<33> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector34<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef vector33<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<33> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector34<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<34> >
-{
- template< typename Vector > struct apply
- {
- typedef vector33<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,34 >
-{
- typedef typename V::item34 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- >
-struct vector35
-{
- typedef aux::vector_tag<35> tag;
- typedef vector35 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
-
-
- typedef void_ item35;
- typedef T34 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,35 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<34> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector35<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef vector34<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<34> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector35<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<35> >
-{
- template< typename Vector > struct apply
- {
- typedef vector34<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,35 >
-{
- typedef typename V::item35 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35
- >
-struct vector36
-{
- typedef aux::vector_tag<36> tag;
- typedef vector36 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
-
-
- typedef void_ item36;
- typedef T35 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,36 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<35> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector36<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef vector35<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<35> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector36<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<36> >
-{
- template< typename Vector > struct apply
- {
- typedef vector35<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,36 >
-{
- typedef typename V::item36 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36
- >
-struct vector37
-{
- typedef aux::vector_tag<37> tag;
- typedef vector37 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
-
-
- typedef void_ item37;
- typedef T36 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,37 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<36> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector37<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef vector36<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<36> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector37<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<37> >
-{
- template< typename Vector > struct apply
- {
- typedef vector36<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,37 >
-{
- typedef typename V::item37 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37
- >
-struct vector38
-{
- typedef aux::vector_tag<38> tag;
- typedef vector38 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
-
-
- typedef void_ item38;
- typedef T37 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,38 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<37> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector38<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef vector37<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<37> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector38<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<38> >
-{
- template< typename Vector > struct apply
- {
- typedef vector37<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,38 >
-{
- typedef typename V::item38 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38
- >
-struct vector39
-{
- typedef aux::vector_tag<39> tag;
- typedef vector39 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
-
-
- typedef void_ item39;
- typedef T38 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,39 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<38> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector39<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef vector38<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<38> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector39<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<39> >
-{
- template< typename Vector > struct apply
- {
- typedef vector38<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,39 >
-{
- typedef typename V::item39 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- >
-struct vector40
-{
- typedef aux::vector_tag<40> tag;
- typedef vector40 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
-
-
- typedef void_ item40;
- typedef T39 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,40 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<39> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector40<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef vector39<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<39> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector40<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<40> >
-{
- template< typename Vector > struct apply
- {
- typedef vector39<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,40 >
-{
- typedef typename V::item40 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- >
-struct vector31_c
- : vector31<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- >
-{
- typedef vector31_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31
- >
-struct vector32_c
- : vector32<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c<T
- , C31>
- >
-{
- typedef vector32_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32
- >
-struct vector33_c
- : vector33<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >
- >
-{
- typedef vector33_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33
- >
-struct vector34_c
- : vector34<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- >
-{
- typedef vector34_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34
- >
-struct vector35_c
- : vector35<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c<T
- , C34>
- >
-{
- typedef vector35_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35
- >
-struct vector36_c
- : vector36<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >
- >
-{
- typedef vector36_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36
- >
-struct vector37_c
- : vector37<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- >
-{
- typedef vector37_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37
- >
-struct vector38_c
- : vector38<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c<T
- , C37>
- >
-{
- typedef vector38_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
- >
-struct vector39_c
- : vector39<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >
- >
-{
- typedef vector39_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
- >
-struct vector40_c
- : vector40<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- >
-{
- typedef vector40_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40
- >
-struct vector41
-{
- typedef aux::vector_tag<41> tag;
- typedef vector41 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
-
-
- typedef void_ item41;
- typedef T40 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,41 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<40> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector41<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef vector40<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<40> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector41<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<41> >
-{
- template< typename Vector > struct apply
- {
- typedef vector40<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,41 >
-{
- typedef typename V::item41 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41
- >
-struct vector42
-{
- typedef aux::vector_tag<42> tag;
- typedef vector42 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
-
-
- typedef void_ item42;
- typedef T41 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,42 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<41> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector42<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef vector41<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<41> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector42<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<42> >
-{
- template< typename Vector > struct apply
- {
- typedef vector41<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,42 >
-{
- typedef typename V::item42 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42
- >
-struct vector43
-{
- typedef aux::vector_tag<43> tag;
- typedef vector43 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
-
-
- typedef void_ item43;
- typedef T42 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,43 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<42> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector43<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef vector42<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<42> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector43<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<43> >
-{
- template< typename Vector > struct apply
- {
- typedef vector42<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,43 >
-{
- typedef typename V::item43 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43
- >
-struct vector44
-{
- typedef aux::vector_tag<44> tag;
- typedef vector44 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
-
-
- typedef void_ item44;
- typedef T43 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,44 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<43> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector44<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef vector43<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<43> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector44<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<44> >
-{
- template< typename Vector > struct apply
- {
- typedef vector43<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,44 >
-{
- typedef typename V::item44 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- >
-struct vector45
-{
- typedef aux::vector_tag<45> tag;
- typedef vector45 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
-
-
- typedef void_ item45;
- typedef T44 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,45 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<44> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector45<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef vector44<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<44> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector45<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<45> >
-{
- template< typename Vector > struct apply
- {
- typedef vector44<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,45 >
-{
- typedef typename V::item45 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45
- >
-struct vector46
-{
- typedef aux::vector_tag<46> tag;
- typedef vector46 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
-
-
- typedef void_ item46;
- typedef T45 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,46 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<45> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector46<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef vector45<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<45> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector46<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<46> >
-{
- template< typename Vector > struct apply
- {
- typedef vector45<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,46 >
-{
- typedef typename V::item46 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46
- >
-struct vector47
-{
- typedef aux::vector_tag<47> tag;
- typedef vector47 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
-
-
- typedef void_ item47;
- typedef T46 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,47 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<46> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector47<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef vector46<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<46> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector47<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<47> >
-{
- template< typename Vector > struct apply
- {
- typedef vector46<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,47 >
-{
- typedef typename V::item47 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47
- >
-struct vector48
-{
- typedef aux::vector_tag<48> tag;
- typedef vector48 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
- typedef T47 item47;
-
-
- typedef void_ item48;
- typedef T47 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,48 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<47> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector48<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef vector47<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- , typename Vector::item47
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<47> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector48<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<48> >
-{
- template< typename Vector > struct apply
- {
- typedef vector47<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,48 >
-{
- typedef typename V::item48 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48
- >
-struct vector49
-{
- typedef aux::vector_tag<49> tag;
- typedef vector49 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
- typedef T47 item47;
- typedef T48 item48;
-
-
- typedef void_ item49;
- typedef T48 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,49 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<48> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector49<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef vector48<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- , typename Vector::item47, typename Vector::item48
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<48> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector49<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<49> >
-{
- template< typename Vector > struct apply
- {
- typedef vector48<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,49 >
-{
- typedef typename V::item49 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48, typename T49
- >
-struct vector50
-{
- typedef aux::vector_tag<50> tag;
- typedef vector50 type;
- typedef T0 item0;
- typedef T1 item1;
- typedef T2 item2;
- typedef T3 item3;
- typedef T4 item4;
- typedef T5 item5;
- typedef T6 item6;
- typedef T7 item7;
- typedef T8 item8;
- typedef T9 item9;
- typedef T10 item10;
- typedef T11 item11;
- typedef T12 item12;
- typedef T13 item13;
- typedef T14 item14;
- typedef T15 item15;
- typedef T16 item16;
- typedef T17 item17;
- typedef T18 item18;
- typedef T19 item19;
- typedef T20 item20;
- typedef T21 item21;
- typedef T22 item22;
- typedef T23 item23;
- typedef T24 item24;
- typedef T25 item25;
- typedef T26 item26;
- typedef T27 item27;
- typedef T28 item28;
- typedef T29 item29;
- typedef T30 item30;
- typedef T31 item31;
- typedef T32 item32;
- typedef T33 item33;
- typedef T34 item34;
- typedef T35 item35;
- typedef T36 item36;
- typedef T37 item37;
- typedef T38 item38;
- typedef T39 item39;
- typedef T40 item40;
- typedef T41 item41;
- typedef T42 item42;
- typedef T43 item43;
- typedef T44 item44;
- typedef T45 item45;
- typedef T46 item46;
- typedef T47 item47;
- typedef T48 item48;
- typedef T49 item49;
-
-
- typedef void_ item50;
- typedef T49 back;
- typedef v_iter< type,0 > begin;
- typedef v_iter< type,50 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<49> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector50<
- T
- ,
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- , typename Vector::item48
- > type;
- };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef vector49<
- typename Vector::item1, typename Vector::item2
- , typename Vector::item3, typename Vector::item4
- , typename Vector::item5, typename Vector::item6
- , typename Vector::item7, typename Vector::item8
- , typename Vector::item9, typename Vector::item10
- , typename Vector::item11, typename Vector::item12
- , typename Vector::item13, typename Vector::item14
- , typename Vector::item15, typename Vector::item16
- , typename Vector::item17, typename Vector::item18
- , typename Vector::item19, typename Vector::item20
- , typename Vector::item21, typename Vector::item22
- , typename Vector::item23, typename Vector::item24
- , typename Vector::item25, typename Vector::item26
- , typename Vector::item27, typename Vector::item28
- , typename Vector::item29, typename Vector::item30
- , typename Vector::item31, typename Vector::item32
- , typename Vector::item33, typename Vector::item34
- , typename Vector::item35, typename Vector::item36
- , typename Vector::item37, typename Vector::item38
- , typename Vector::item39, typename Vector::item40
- , typename Vector::item41, typename Vector::item42
- , typename Vector::item43, typename Vector::item44
- , typename Vector::item45, typename Vector::item46
- , typename Vector::item47, typename Vector::item48
- , typename Vector::item49
- > type;
- };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<49> >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef vector50<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- , typename Vector::item48
- ,
- T
- > type;
- };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<50> >
-{
- template< typename Vector > struct apply
- {
- typedef vector49<
- typename Vector::item0, typename Vector::item1
- , typename Vector::item2, typename Vector::item3
- , typename Vector::item4, typename Vector::item5
- , typename Vector::item6, typename Vector::item7
- , typename Vector::item8, typename Vector::item9
- , typename Vector::item10, typename Vector::item11
- , typename Vector::item12, typename Vector::item13
- , typename Vector::item14, typename Vector::item15
- , typename Vector::item16, typename Vector::item17
- , typename Vector::item18, typename Vector::item19
- , typename Vector::item20, typename Vector::item21
- , typename Vector::item22, typename Vector::item23
- , typename Vector::item24, typename Vector::item25
- , typename Vector::item26, typename Vector::item27
- , typename Vector::item28, typename Vector::item29
- , typename Vector::item30, typename Vector::item31
- , typename Vector::item32, typename Vector::item33
- , typename Vector::item34, typename Vector::item35
- , typename Vector::item36, typename Vector::item37
- , typename Vector::item38, typename Vector::item39
- , typename Vector::item40, typename Vector::item41
- , typename Vector::item42, typename Vector::item43
- , typename Vector::item44, typename Vector::item45
- , typename Vector::item46, typename Vector::item47
- , typename Vector::item48
- > type;
- };
-};
-
-template< typename V >
-struct v_at< V,50 >
-{
- typedef typename V::item50 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- >
-struct vector41_c
- : vector41<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c<T
- , C40>
- >
-{
- typedef vector41_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41
- >
-struct vector42_c
- : vector42<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >
- >
-{
- typedef vector42_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42
- >
-struct vector43_c
- : vector43<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- >
-{
- typedef vector43_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43
- >
-struct vector44_c
- : vector44<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c<T
- , C43>
- >
-{
- typedef vector44_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44
- >
-struct vector45_c
- : vector45<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >
- >
-{
- typedef vector45_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45
- >
-struct vector46_c
- : vector46<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- >
-{
- typedef vector46_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46
- >
-struct vector47_c
- : vector47<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c<T
- , C46>
- >
-{
- typedef vector47_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47
- >
-struct vector48_c
- : vector48<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- , integral_c< T,C46 >, integral_c< T,C47 >
- >
-{
- typedef vector48_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
- >
-struct vector49_c
- : vector49<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >
- >
-{
- typedef vector49_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
- >
-struct vector50_c
- : vector50<
- integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
- , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
- , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
- , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
- , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
- , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
- , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
- , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
- , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
- , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
- , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
- , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
- , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
- , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
- , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
- , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c<T
- , C49>
- >
-{
- typedef vector50_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0
- >
-struct vector1
- : v_item<
- T0
- , vector0< >
- >
-{
- typedef vector1 type;
-};
-
-template<
- typename T0, typename T1
- >
-struct vector2
- : v_item<
- T1
- , vector1<T0>
- >
-{
- typedef vector2 type;
-};
-
-template<
- typename T0, typename T1, typename T2
- >
-struct vector3
- : v_item<
- T2
- , vector2< T0,T1 >
- >
-{
- typedef vector3 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3
- >
-struct vector4
- : v_item<
- T3
- , vector3< T0,T1,T2 >
- >
-{
- typedef vector4 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- >
-struct vector5
- : v_item<
- T4
- , vector4< T0,T1,T2,T3 >
- >
-{
- typedef vector5 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5
- >
-struct vector6
- : v_item<
- T5
- , vector5< T0,T1,T2,T3,T4 >
- >
-{
- typedef vector6 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6
- >
-struct vector7
- : v_item<
- T6
- , vector6< T0,T1,T2,T3,T4,T5 >
- >
-{
- typedef vector7 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7
- >
-struct vector8
- : v_item<
- T7
- , vector7< T0,T1,T2,T3,T4,T5,T6 >
- >
-{
- typedef vector8 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8
- >
-struct vector9
- : v_item<
- T8
- , vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
- >
-{
- typedef vector9 type;
-};
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- >
-struct vector10
- : v_item<
- T9
- , vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
- >
-{
- typedef vector10 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0
- >
-struct vector1_c
- : v_item<
- integral_c< T,C0 >
- , vector0_c<T>
- >
-{
- typedef vector1_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1
- >
-struct vector2_c
- : v_item<
- integral_c< T,C1 >
- , vector1_c< T,C0 >
- >
-{
- typedef vector2_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2
- >
-struct vector3_c
- : v_item<
- integral_c< T,C2 >
- , vector2_c< T,C0,C1 >
- >
-{
- typedef vector3_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3
- >
-struct vector4_c
- : v_item<
- integral_c< T,C3 >
- , vector3_c< T,C0,C1,C2 >
- >
-{
- typedef vector4_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4
- >
-struct vector5_c
- : v_item<
- integral_c< T,C4 >
- , vector4_c< T,C0,C1,C2,C3 >
- >
-{
- typedef vector5_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5
- >
-struct vector6_c
- : v_item<
- integral_c< T,C5 >
- , vector5_c< T,C0,C1,C2,C3,C4 >
- >
-{
- typedef vector6_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6
- >
-struct vector7_c
- : v_item<
- integral_c< T,C6 >
- , vector6_c< T,C0,C1,C2,C3,C4,C5 >
- >
-{
- typedef vector7_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
- >
-struct vector8_c
- : v_item<
- integral_c< T,C7 >
- , vector7_c< T,C0,C1,C2,C3,C4,C5,C6 >
- >
-{
- typedef vector8_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
- >
-struct vector9_c
- : v_item<
- integral_c< T,C8 >
- , vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
- >
-{
- typedef vector9_c type;
- typedef T value_type;
-};
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
- >
-struct vector10_c
- : v_item<
- integral_c< T,C9 >
- , vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
- >
-{
- typedef vector10_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T0, typename T1, typename T2, typename T3, typename T4
- , typename T5, typename T6, typename T7, typename T8, typename T9
- , typename T10
- >
-struct vector11
- : v_item<
- T10
- , vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
- >
-{
- typedef vector11 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 vector12
- : v_item<
- T11
- , vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
- >
-{
- typedef vector12 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 vector13
- : v_item<
- T12
- , vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
- >
-{
- typedef vector13 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 vector14
- : v_item<
- T13
- , vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
- >
-{
- typedef vector14 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 vector15
- : v_item<
- T14
- , vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
- >
-{
- typedef vector15 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 vector16
- : v_item<
- T15
- , vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
- >
-{
- typedef vector16 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 vector17
- : v_item<
- T16
- , vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
- >
-{
- typedef vector17 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 vector18
- : v_item<
- T17
- , vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
- >
-{
- typedef vector18 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 vector19
- : v_item<
- T18
- , vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
- >
-{
- typedef vector19 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, typename T19
- >
-struct vector20
- : v_item<
- T19
- , vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
- >
-{
- typedef vector20 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename T
- , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
- >
-struct vector11_c
- : v_item<
- integral_c< T,C10 >
- , vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
- >
-{
- typedef vector11_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector12_c
- : v_item<
- integral_c< T,C11 >
- , vector11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
- >
-{
- typedef vector12_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector13_c
- : v_item<
- integral_c< T,C12 >
- , vector12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
- >
-{
- typedef vector13_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector14_c
- : v_item<
- integral_c< T,C13 >
- , vector13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
- >
-{
- typedef vector14_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector15_c
- : v_item<
- integral_c< T,C14 >
- , vector14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
- >
-{
- typedef vector15_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector16_c
- : v_item<
- integral_c< T,C15 >
- , vector15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
- >
-{
- typedef vector16_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector17_c
- : v_item<
- integral_c< T,C16 >
- , vector16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
- >
-{
- typedef vector17_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector18_c
- : v_item<
- integral_c< T,C17 >
- , vector17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
- >
-{
- typedef vector18_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector19_c
- : v_item<
- integral_c< T,C18 >
- , vector18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
- >
-{
- typedef vector19_c type;
- typedef T value_type;
-};
-
-template<
- typename 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
- >
-struct vector20_c
- : v_item<
- integral_c< T,C19 >
- , vector19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
- >
-{
- typedef vector20_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20
- >
-struct vector21
- : v_item<
- T20
- , vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
- >
-{
- typedef vector21 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, typename T19
- , typename T20, typename T21
- >
-struct vector22
- : v_item<
- T21
- , vector21< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
- >
-{
- typedef vector22 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, typename T19
- , typename T20, typename T21, typename T22
- >
-struct vector23
- : v_item<
- T22
- , vector22< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
- >
-{
- typedef vector23 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, typename T19
- , typename T20, typename T21, typename T22, typename T23
- >
-struct vector24
- : v_item<
- T23
- , vector23< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
- >
-{
- typedef vector24 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- >
-struct vector25
- : v_item<
- T24
- , vector24< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
- >
-{
- typedef vector25 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25
- >
-struct vector26
- : v_item<
- T25
- , vector25< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
- >
-{
- typedef vector26 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26
- >
-struct vector27
- : v_item<
- T26
- , vector26< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
- >
-{
- typedef vector27 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27
- >
-struct vector28
- : v_item<
- T27
- , vector27< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
- >
-{
- typedef vector28 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28
- >
-struct vector29
- : v_item<
- T28
- , vector28< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
- >
-{
- typedef vector29 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- >
-struct vector30
- : v_item<
- T29
- , vector29< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
- >
-{
- typedef vector30 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- >
-struct vector21_c
- : v_item<
- integral_c< T,C20 >
- , vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
- >
-{
- typedef vector21_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21
- >
-struct vector22_c
- : v_item<
- integral_c< T,C21 >
- , vector21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
- >
-{
- typedef vector22_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22
- >
-struct vector23_c
- : v_item<
- integral_c< T,C22 >
- , vector22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
- >
-{
- typedef vector23_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23
- >
-struct vector24_c
- : v_item<
- integral_c< T,C23 >
- , vector23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
- >
-{
- typedef vector24_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24
- >
-struct vector25_c
- : v_item<
- integral_c< T,C24 >
- , vector24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
- >
-{
- typedef vector25_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25
- >
-struct vector26_c
- : v_item<
- integral_c< T,C25 >
- , vector25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
- >
-{
- typedef vector26_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26
- >
-struct vector27_c
- : v_item<
- integral_c< T,C26 >
- , vector26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
- >
-{
- typedef vector27_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27
- >
-struct vector28_c
- : v_item<
- integral_c< T,C27 >
- , vector27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
- >
-{
- typedef vector28_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
- >
-struct vector29_c
- : v_item<
- integral_c< T,C28 >
- , vector28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
- >
-{
- typedef vector29_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
- >
-struct vector30_c
- : v_item<
- integral_c< T,C29 >
- , vector29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
- >
-{
- typedef vector30_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30
- >
-struct vector31
- : v_item<
- T30
- , vector30< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
- >
-{
- typedef vector31 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31
- >
-struct vector32
- : v_item<
- T31
- , vector31< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
- >
-{
- typedef vector32 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32
- >
-struct vector33
- : v_item<
- T32
- , vector32< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
- >
-{
- typedef vector33 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33
- >
-struct vector34
- : v_item<
- T33
- , vector33< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
- >
-{
- typedef vector34 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- >
-struct vector35
- : v_item<
- T34
- , vector34< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
- >
-{
- typedef vector35 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35
- >
-struct vector36
- : v_item<
- T35
- , vector35< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
- >
-{
- typedef vector36 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36
- >
-struct vector37
- : v_item<
- T36
- , vector36< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
- >
-{
- typedef vector37 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37
- >
-struct vector38
- : v_item<
- T37
- , vector37< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
- >
-{
- typedef vector38 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38
- >
-struct vector39
- : v_item<
- T38
- , vector38< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
- >
-{
- typedef vector39 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- >
-struct vector40
- : v_item<
- T39
- , vector39< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
- >
-{
- typedef vector40 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- >
-struct vector31_c
- : v_item<
- integral_c< T,C30 >
- , vector30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
- >
-{
- typedef vector31_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31
- >
-struct vector32_c
- : v_item<
- integral_c< T,C31 >
- , vector31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
- >
-{
- typedef vector32_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32
- >
-struct vector33_c
- : v_item<
- integral_c< T,C32 >
- , vector32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
- >
-{
- typedef vector33_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33
- >
-struct vector34_c
- : v_item<
- integral_c< T,C33 >
- , vector33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
- >
-{
- typedef vector34_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34
- >
-struct vector35_c
- : v_item<
- integral_c< T,C34 >
- , vector34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
- >
-{
- typedef vector35_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35
- >
-struct vector36_c
- : v_item<
- integral_c< T,C35 >
- , vector35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
- >
-{
- typedef vector36_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36
- >
-struct vector37_c
- : v_item<
- integral_c< T,C36 >
- , vector36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
- >
-{
- typedef vector37_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37
- >
-struct vector38_c
- : v_item<
- integral_c< T,C37 >
- , vector37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
- >
-{
- typedef vector38_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
- >
-struct vector39_c
- : v_item<
- integral_c< T,C38 >
- , vector38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
- >
-{
- typedef vector39_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
- >
-struct vector40_c
- : v_item<
- integral_c< T,C39 >
- , vector39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
- >
-{
- typedef vector40_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-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
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40
- >
-struct vector41
- : v_item<
- T40
- , vector40< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
- >
-{
- typedef vector41 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41
- >
-struct vector42
- : v_item<
- T41
- , vector41< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
- >
-{
- typedef vector42 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42
- >
-struct vector43
- : v_item<
- T42
- , vector42< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
- >
-{
- typedef vector43 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43
- >
-struct vector44
- : v_item<
- T43
- , vector43< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
- >
-{
- typedef vector44 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- >
-struct vector45
- : v_item<
- T44
- , vector44< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
- >
-{
- typedef vector45 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45
- >
-struct vector46
- : v_item<
- T45
- , vector45< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 >
- >
-{
- typedef vector46 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46
- >
-struct vector47
- : v_item<
- T46
- , vector46< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 >
- >
-{
- typedef vector47 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47
- >
-struct vector48
- : v_item<
- T47
- , vector47< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 >
- >
-{
- typedef vector48 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48
- >
-struct vector49
- : v_item<
- T48
- , vector48< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 >
- >
-{
- typedef vector49 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, typename T19
- , typename T20, typename T21, typename T22, typename T23, typename T24
- , typename T25, typename T26, typename T27, typename T28, typename T29
- , typename T30, typename T31, typename T32, typename T33, typename T34
- , typename T35, typename T36, typename T37, typename T38, typename T39
- , typename T40, typename T41, typename T42, typename T43, typename T44
- , typename T45, typename T46, typename T47, typename T48, typename T49
- >
-struct vector50
- : v_item<
- T49
- , vector49< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 >
- >
-{
- typedef vector50 type;
-};
-
-}}
+++ /dev/null
-
-// 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 "boost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- >
-struct vector41_c
- : v_item<
- integral_c< T,C40 >
- , vector40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
- >
-{
- typedef vector41_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41
- >
-struct vector42_c
- : v_item<
- integral_c< T,C41 >
- , vector41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
- >
-{
- typedef vector42_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42
- >
-struct vector43_c
- : v_item<
- integral_c< T,C42 >
- , vector42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
- >
-{
- typedef vector43_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43
- >
-struct vector44_c
- : v_item<
- integral_c< T,C43 >
- , vector43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
- >
-{
- typedef vector44_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44
- >
-struct vector45_c
- : v_item<
- integral_c< T,C44 >
- , vector44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
- >
-{
- typedef vector45_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45
- >
-struct vector46_c
- : v_item<
- integral_c< T,C45 >
- , vector45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
- >
-{
- typedef vector46_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46
- >
-struct vector47_c
- : v_item<
- integral_c< T,C46 >
- , vector46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
- >
-{
- typedef vector47_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47
- >
-struct vector48_c
- : v_item<
- integral_c< T,C47 >
- , vector47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
- >
-{
- typedef vector48_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
- >
-struct vector49_c
- : v_item<
- integral_c< T,C48 >
- , vector48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
- >
-{
- typedef vector49_c type;
- typedef T value_type;
-};
-
-template<
- typename 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, T C20
- , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
- , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
- , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
- >
-struct vector50_c
- : v_item<
- integral_c< T,C49 >
- , vector49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
- >
-{
- typedef vector50_c type;
- typedef T value_type;
-};
-
-}}
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/push_back.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# include <boost/mpl/vector/aux_/item.hpp>
-# include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct push_back_impl< aux::vector_tag >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef v_item<T,Vector,0> type;
- };
-};
-
-}}
-
-#endif
-
-#endif // BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/push_front.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-# include <boost/mpl/vector/aux_/item.hpp>
-# include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct push_front_impl< aux::vector_tag >
-{
- template< typename Vector, typename T > struct apply
- {
- typedef v_item<T,Vector,1> type;
- };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/size.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/vector/aux_/O1_size.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct size_impl< aux::vector_tag >
- : O1_size_impl< aux::vector_tag >
-{
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct size_impl< aux::vector_tag<N> >
- : O1_size_impl< aux::vector_tag<N> >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/tag.hpp,v $
-// $Date: 2004/11/28 01:52:12 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-struct v_iter_tag;
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-struct vector_tag;
-#else
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct vector_tag;
-#endif
-
-}}}
-
-#endif // BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/vector0.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-
-#include <boost/mpl/vector/aux_/iterator.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Dummy = na > struct vector0;
-
-template<> struct vector0<na>
-{
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
- typedef aux::vector_tag tag;
- typedef vector0 type;
- typedef long_<32768> lower_bound_;
- typedef lower_bound_ upper_bound_;
- typedef long_<0> size;
-
- static aux::type_wrapper<void_> item_(...);
-#else
- typedef aux::vector_tag<0> tag;
- typedef vector0 type;
- typedef void_ item0;
-
- typedef v_iter<vector0<>,0> begin;
- typedef v_iter<vector0<>,0> end;
-#endif
-};
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector0.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.4 $
-
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/vector/aux_/front.hpp>
-#include <boost/mpl/vector/aux_/push_front.hpp>
-#include <boost/mpl/vector/aux_/pop_front.hpp>
-#include <boost/mpl/vector/aux_/push_back.hpp>
-#include <boost/mpl/vector/aux_/pop_back.hpp>
-#include <boost/mpl/vector/aux_/back.hpp>
-#include <boost/mpl/vector/aux_/clear.hpp>
-#include <boost/mpl/vector/aux_/O1_size.hpp>
-#include <boost/mpl/vector/aux_/size.hpp>
-#include <boost/mpl/vector/aux_/empty.hpp>
-#include <boost/mpl/vector/aux_/item.hpp>
-#include <boost/mpl/vector/aux_/iterator.hpp>
-#include <boost/mpl/vector/aux_/vector0.hpp>
-#include <boost/mpl/vector/aux_/begin_end.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-
-#endif // BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector0_c.hpp,v $
-// $Date: 2004/11/28 01:52:56 $
-// $Revision: 1.5 $
-
-#include <boost/mpl/vector/vector0.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T > struct vector0_c
- : vector0<>
-{
- typedef vector0_c type;
- typedef T value_type;
-};
-
-}}
-
-#endif // BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector10.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector0.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector10.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, 10, <boost/mpl/vector/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector10_c.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector0_c.hpp>
-# include <boost/mpl/vector/vector10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(1, 10, <boost/mpl/vector/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector20.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector20.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/vector/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector20_c.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector10_c.hpp>
-# include <boost/mpl/vector/vector20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(11, 20, <boost/mpl/vector/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector30.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector30.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/vector/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector30_c.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector20_c.hpp>
-# include <boost/mpl/vector/vector30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/config.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(21, 30, <boost/mpl/vector/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_USE_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector40.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector40.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/vector/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector40_c.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector30_c.hpp>
-# include <boost/mpl/vector/vector40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(31, 40, <boost/mpl/vector/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector50.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector50.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/vector/aux_/numbered.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector/vector50_c.hpp,v $
-// $Date: 2004/09/02 15:41:19 $
-// $Revision: 1.6 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/vector/vector40_c.hpp>
-# include <boost/mpl/vector/vector50.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp
-# include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/aux_/config/typeof.hpp>
-# include <boost/mpl/aux_/config/ctps.hpp>
-# include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(41, 50, <boost/mpl/vector/aux_/numbered_c.hpp>))
-# include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VECTOR_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_C_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/vector_c.hpp,v $
-// $Date: 2004/11/28 01:58:27 $
-// $Revision: 1.8 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-# include <boost/mpl/limits/vector.hpp>
-# include <boost/mpl/aux_/nttp_decl.hpp>
-# include <boost/mpl/aux_/config/preprocessor.hpp>
-
-# include <boost/preprocessor/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-# define AUX778076_VECTOR_C_HEADER \
- BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE),_c).hpp \
- /**/
-#else
-# define AUX778076_VECTOR_C_HEADER \
- BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE),_c)##.hpp \
- /**/
-#endif
-
-# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_C_HEADER)
-# undef AUX778076_VECTOR_C_HEADER
-# include <climits>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-# define BOOST_MPL_PREPROCESSED_HEADER vector_c.hpp
-# include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-# include <boost/mpl/limits/vector.hpp>
-
-# define AUX778076_SEQUENCE_NAME vector_c
-# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE
-# define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(vector,n),_c)
-# define AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-# include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_VECTOR_C_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VOID_HPP_INCLUDED
-#define BOOST_MPL_VOID_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/void.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.9 $
-
-#include <boost/mpl/void_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// [JDG Feb-4-2003] made void_ a complete type to allow it to be
-// instantiated so that it can be passed in as an object that can be
-// used to select an overloaded function. Possible use includes signaling
-// a zero arity functor evaluation call.
-struct void_ { typedef void_ type; };
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace boost { namespace mpl {
-
-template< typename T >
-struct is_void_
- : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using false_::value;
-#endif
-};
-
-template<>
-struct is_void_<void_>
- : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using true_::value;
-#endif
-};
-
-template< typename T >
-struct is_not_void_
- : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using true_::value;
-#endif
-};
-
-template<>
-struct is_not_void_<void_>
- : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- using false_::value;
-#endif
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, is_void_)
-BOOST_MPL_AUX_NA_SPEC(1, is_not_void_)
-
-}}
-
-#endif // BOOST_MPL_VOID_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED
-#define BOOST_MPL_VOID_FWD_HPP_INCLUDED
-
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/void_fwd.hpp,v $
-// $Date$
-// $Revision$
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-struct void_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(void_)
-
-#endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED
+++ /dev/null
-
-#ifndef BOOST_MPL_ZIP_VIEW_HPP_INCLUDED
-#define BOOST_MPL_ZIP_VIEW_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2002
-// Copyright David Abrahams 2000-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/libs/mpl for documentation.
-
-// $Source: /cvsroot/boost/boost/boost/mpl/zip_view.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
-
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename IteratorSeq >
-struct zip_iterator
-{
- typedef forward_iterator_tag category;
- typedef typename transform1<
- IteratorSeq
- , deref<_1>
- >::type type;
-
- typedef zip_iterator<
- typename transform1<
- IteratorSeq
- , next<_1>
- >::type
- > next;
-};
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(Sequences)
- >
-struct zip_view
-{
- private:
- typedef typename transform1< Sequences, begin<_1> >::type first_ones_;
- typedef typename transform1< Sequences, end<_1> >::type last_ones_;
-
- public:
- typedef nested_begin_end_tag tag;
- typedef zip_iterator<first_ones_> begin;
- typedef zip_iterator<last_ones_> end;
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, zip_view)
-
-}}
-
-#endif // BOOST_MPL_ZIP_VIEW_HPP_INCLUDED
+++ /dev/null
-// Copyright 2002 The Trustees of Indiana University.
-
-// 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)
-
-// Boost.MultiArray Library
-// Authors: Ronald Garcia
-// Jeremy Siek
-// Andrew Lumsdaine
-// See http://www.boost.org/libs/multi_array for documentation.
-
-#ifndef BOOST_MULTI_ARRAY_RG071801_HPP
-#define BOOST_MULTI_ARRAY_RG071801_HPP
-
-//
-// multi_array.hpp - contains the multi_array class template
-// declaration and definition
-//
-
-#include "boost/multi_array/base.hpp"
-#include "boost/multi_array/collection_concept.hpp"
-#include "boost/multi_array/copy_array.hpp"
-#include "boost/multi_array/iterator.hpp"
-#include "boost/multi_array/subarray.hpp"
-#include "boost/multi_array/multi_array_ref.hpp"
-#include "boost/multi_array/algorithm.hpp"
-#include "boost/array.hpp"
-#include "boost/mpl/if.hpp"
-#include "boost/type_traits.hpp"
-#include <algorithm>
-#include <cstddef>
-#include <functional>
-#include <numeric>
-#include <vector>
-
-
-
-namespace boost {
- namespace detail {
- namespace multi_array {
-
- struct populate_index_ranges {
- multi_array_types::index_range
- operator()(multi_array_types::index base,
- multi_array_types::size_type extent) {
- return multi_array_types::index_range(base,base+extent);
- }
- };
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-//
-// Compilers that don't support partial ordering may need help to
-// disambiguate multi_array's templated constructors. Even vc6/7 are
-// capable of some limited SFINAE, so we take the most-general version
-// out of the overload set with disable_multi_array_impl.
-//
-template <typename T, std::size_t NumDims, typename TPtr>
-char is_multi_array_impl_help(const_multi_array_view<T,NumDims,TPtr>&);
-template <typename T, std::size_t NumDims, typename TPtr>
-char is_multi_array_impl_help(const_sub_array<T,NumDims,TPtr>&);
-template <typename T, std::size_t NumDims, typename TPtr>
-char is_multi_array_impl_help(const_multi_array_ref<T,NumDims,TPtr>&);
-
-char ( &is_multi_array_impl_help(...) )[2];
-
-template <class T>
-struct is_multi_array_impl
-{
- static T x;
- BOOST_STATIC_CONSTANT(bool, value = sizeof((is_multi_array_impl_help)(x)) == 1);
-
- typedef mpl::bool_<value> type;
-};
-
-template <bool multi_array = false>
-struct disable_multi_array_impl_impl
-{
- typedef int type;
-};
-
-template <>
-struct disable_multi_array_impl_impl<true>
-{
- // forming a pointer to a reference triggers SFINAE
- typedef int& type;
-};
-
-
-template <class T>
-struct disable_multi_array_impl :
- disable_multi_array_impl_impl<is_multi_array_impl<T>::value>
-{ };
-
-
-template <>
-struct disable_multi_array_impl<int>
-{
- typedef int type;
-};
-
-
-#endif
-
- } //namespace multi_array
- } // namespace detail
-
-template<typename T, std::size_t NumDims,
- typename Allocator>
-class multi_array :
- public multi_array_ref<T,NumDims>
-{
- typedef multi_array_ref<T,NumDims> super_type;
-public:
- typedef typename super_type::value_type value_type;
- typedef typename super_type::reference reference;
- typedef typename super_type::const_reference const_reference;
- typedef typename super_type::iterator iterator;
- typedef typename super_type::const_iterator const_iterator;
- typedef typename super_type::reverse_iterator reverse_iterator;
- typedef typename super_type::const_reverse_iterator const_reverse_iterator;
- typedef typename super_type::element element;
- typedef typename super_type::size_type size_type;
- typedef typename super_type::difference_type difference_type;
- typedef typename super_type::index index;
- typedef typename super_type::extent_range extent_range;
-
-
- template <std::size_t NDims>
- struct const_array_view {
- typedef boost::detail::multi_array::const_multi_array_view<T,NDims> type;
- };
-
- template <std::size_t NDims>
- struct array_view {
- typedef boost::detail::multi_array::multi_array_view<T,NDims> type;
- };
-
- explicit multi_array() :
- super_type((T*)initial_base_,c_storage_order(),
- /*index_bases=*/0, /*extents=*/0) {
- allocate_space();
- }
-
- template <class ExtentList>
- explicit multi_array(
- ExtentList const& extents
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
- , typename mpl::if_<
- detail::multi_array::is_multi_array_impl<ExtentList>,
- int&,int>::type* = 0
-#endif
- ) :
- super_type((T*)initial_base_,extents) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
- allocate_space();
- }
-
-
- template <class ExtentList>
- explicit multi_array(ExtentList const& extents,
- const general_storage_order<NumDims>& so) :
- super_type((T*)initial_base_,extents,so) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
- allocate_space();
- }
-
- template <class ExtentList>
- explicit multi_array(ExtentList const& extents,
- const general_storage_order<NumDims>& so,
- Allocator const& alloc) :
- super_type((T*)initial_base_,extents,so), allocator_(alloc) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
- allocate_space();
- }
-
-
- explicit multi_array(const detail::multi_array
- ::extent_gen<NumDims>& ranges) :
- super_type((T*)initial_base_,ranges) {
-
- allocate_space();
- }
-
-
- explicit multi_array(const detail::multi_array
- ::extent_gen<NumDims>& ranges,
- const general_storage_order<NumDims>& so) :
- super_type((T*)initial_base_,ranges,so) {
-
- allocate_space();
- }
-
-
- explicit multi_array(const detail::multi_array
- ::extent_gen<NumDims>& ranges,
- const general_storage_order<NumDims>& so,
- Allocator const& alloc) :
- super_type((T*)initial_base_,ranges,so), allocator_(alloc) {
-
- allocate_space();
- }
-
- multi_array(const multi_array& rhs) :
- super_type(rhs), allocator_(rhs.allocator_) {
- allocate_space();
- boost::detail::multi_array::copy_n(rhs.base_,rhs.num_elements(),base_);
- }
-
-
- //
- // A multi_array is constructible from any multi_array_ref, subarray, or
- // array_view object. The following constructors ensure that.
- //
-
- // Due to limited support for partial template ordering,
- // MSVC 6&7 confuse the following with the most basic ExtentList
- // constructor.
-#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
- template <typename OPtr>
- multi_array(const const_multi_array_ref<T,NumDims,OPtr>& rhs,
- const general_storage_order<NumDims>& so = c_storage_order())
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- // Warning! storage order may change, hence the following copy technique.
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- template <typename OPtr>
- multi_array(const detail::multi_array::
- const_sub_array<T,NumDims,OPtr>& rhs,
- const general_storage_order<NumDims>& so = c_storage_order())
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
-
- template <typename OPtr>
- multi_array(const detail::multi_array::
- const_multi_array_view<T,NumDims,OPtr>& rhs,
- const general_storage_order<NumDims>& so = c_storage_order())
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
-#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
- // More limited support for MSVC
-
-
- multi_array(const const_multi_array_ref<T,NumDims>& rhs)
- : super_type(0,c_storage_order(),rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- // Warning! storage order may change, hence the following copy technique.
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const const_multi_array_ref<T,NumDims>& rhs,
- const general_storage_order<NumDims>& so)
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- // Warning! storage order may change, hence the following copy technique.
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const detail::multi_array::
- const_sub_array<T,NumDims>& rhs)
- : super_type(0,c_storage_order(),rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const detail::multi_array::
- const_sub_array<T,NumDims>& rhs,
- const general_storage_order<NumDims>& so)
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
-
- multi_array(const detail::multi_array::
- const_multi_array_view<T,NumDims>& rhs)
- : super_type(0,c_storage_order(),rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const detail::multi_array::
- const_multi_array_view<T,NumDims>& rhs,
- const general_storage_order<NumDims>& so)
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
-#endif // !BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
- // Thes constructors are necessary because of more exact template matches.
- multi_array(const multi_array_ref<T,NumDims>& rhs)
- : super_type(0,c_storage_order(),rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- // Warning! storage order may change, hence the following copy technique.
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const multi_array_ref<T,NumDims>& rhs,
- const general_storage_order<NumDims>& so)
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- // Warning! storage order may change, hence the following copy technique.
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
-
- multi_array(const detail::multi_array::
- sub_array<T,NumDims>& rhs)
- : super_type(0,c_storage_order(),rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const detail::multi_array::
- sub_array<T,NumDims>& rhs,
- const general_storage_order<NumDims>& so)
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
-
- multi_array(const detail::multi_array::
- multi_array_view<T,NumDims>& rhs)
- : super_type(0,c_storage_order(),rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- multi_array(const detail::multi_array::
- multi_array_view<T,NumDims>& rhs,
- const general_storage_order<NumDims>& so)
- : super_type(0,so,rhs.index_bases(),rhs.shape())
- {
- allocate_space();
- std::copy(rhs.begin(),rhs.end(),this->begin());
- }
-
- // Since assignment is a deep copy, multi_array_ref
- // contains all the necessary code.
- template <typename ConstMultiArray>
- multi_array& operator=(const ConstMultiArray& other) {
- super_type::operator=(other);
- return *this;
- }
-
- multi_array& operator=(const multi_array& other) {
- if (&other != this) {
- super_type::operator=(other);
- }
- return *this;
- }
-
-
- multi_array& resize(const detail::multi_array
- ::extent_gen<NumDims>& ranges) {
-
-
- // build a multi_array with the specs given
- multi_array new_array(ranges);
-
-
- // build a view of tmp with the minimum extents
-
- // Get the minimum extents of the arrays.
- boost::array<size_type,NumDims> min_extents;
-
- const size_type& (*min)(const size_type&, const size_type&) =
- std::min;
- std::transform(new_array.extent_list_.begin(),new_array.extent_list_.end(),
- this->extent_list_.begin(),
- min_extents.begin(),
- min);
-
-
- // typedef boost::array<index,NumDims> index_list;
- // Build index_gen objects to create views with the same shape
-
- // these need to be separate to handle non-zero index bases
- typedef detail::multi_array::index_gen<NumDims,NumDims> index_gen;
- index_gen old_idxes;
- index_gen new_idxes;
-
- std::transform(new_array.index_base_list_.begin(),
- new_array.index_base_list_.end(),
- min_extents.begin(),old_idxes.ranges_.begin(),
- detail::multi_array::populate_index_ranges());
-
- std::transform(this->index_base_list_.begin(),
- this->index_base_list_.end(),
- min_extents.begin(),new_idxes.ranges_.begin(),
- detail::multi_array::populate_index_ranges());
-
- // Build same-shape views of the two arrays
- typename
- multi_array::BOOST_NESTED_TEMPLATE array_view<NumDims>::type view_old = (*this)[old_idxes];
- typename
- multi_array::BOOST_NESTED_TEMPLATE array_view<NumDims>::type view_new = new_array[new_idxes];
-
- // Set the right portion of the new array
- view_new = view_old;
-
- using std::swap;
- // Swap the internals of these arrays.
- swap(this->super_type::base_,new_array.super_type::base_);
- swap(this->storage_,new_array.storage_);
- swap(this->extent_list_,new_array.extent_list_);
- swap(this->stride_list_,new_array.stride_list_);
- swap(this->index_base_list_,new_array.index_base_list_);
- swap(this->origin_offset_,new_array.origin_offset_);
- swap(this->directional_offset_,new_array.directional_offset_);
- swap(this->num_elements_,new_array.num_elements_);
- swap(this->allocator_,new_array.allocator_);
- swap(this->base_,new_array.base_);
- swap(this->allocated_elements_,new_array.allocated_elements_);
-
- return *this;
- }
-
-
- ~multi_array() {
- deallocate_space();
- }
-
-private:
- void allocate_space() {
- typename Allocator::const_pointer no_hint=0;
- base_ = allocator_.allocate(this->num_elements(),no_hint);
- this->set_base_ptr(base_);
- allocated_elements_ = this->num_elements();
- std::uninitialized_fill_n(base_,allocated_elements_,T());
- }
-
- void deallocate_space() {
- if(base_) {
- for(T* i = base_; i != base_+allocated_elements_; ++i)
- allocator_.destroy(i);
- allocator_.deallocate(base_,allocated_elements_);
- }
- }
-
- typedef boost::array<size_type,NumDims> size_list;
- typedef boost::array<index,NumDims> index_list;
-
- Allocator allocator_;
- T* base_;
- size_type allocated_elements_;
- enum {initial_base_ = 0};
-};
-
-} // namespace boost
-
-#endif // BOOST_MULTI_ARRAY_RG071801_HPP
+++ /dev/null
-/* Multiply indexed container.
- *
- * Copyright 2003-2005 JoaquÃn M López Muñoz.
- * Distributed under the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org/libs/multi_index for library home page.
- */
-
-#ifndef BOOST_MULTI_INDEX_HPP
-#define BOOST_MULTI_INDEX_HPP
-
-#if defined(_MSC_VER)&&(_MSC_VER>=1200)
-#pragma once
-#endif
-
-#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
-#include <algorithm>
-#include <boost/detail/allocator_utilities.hpp>
-#include <boost/detail/no_exceptions_support.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/contains.hpp>
-#include <boost/mpl/find_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/size.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/multi_index_container_fwd.hpp>
-#include <boost/multi_index/detail/access_specifier.hpp>
-#include <boost/multi_index/detail/base_type.hpp>
-#include <boost/multi_index/detail/converter.hpp>
-#include <boost/multi_index/detail/def_ctor_tuple_cons.hpp>
-#include <boost/multi_index/detail/header_holder.hpp>
-#include <boost/multi_index/detail/has_tag.hpp>
-#include <boost/multi_index/detail/no_duplicate_tags.hpp>
-#include <boost/multi_index/detail/prevent_eti.hpp>
-#include <boost/multi_index/detail/safe_mode.hpp>
-#include <boost/multi_index/detail/scope_guard.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/utility/base_from_member.hpp>
-
-#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)
-#include <boost/multi_index/detail/archive_constructed.hpp>
-#include <boost/serialization/nvp.hpp>
-#include <boost/serialization/split_member.hpp>
-#include <boost/throw_exception.hpp>
-#endif
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)
-#include <boost/multi_index/detail/invariant_assert.hpp>
-#define BOOST_MULTI_INDEX_CHECK_INVARIANT \
- detail::scope_guard BOOST_JOIN(check_invariant_,__LINE__)= \
- detail::make_obj_guard(*this,&multi_index_container::check_invariant_); \
- BOOST_JOIN(check_invariant_,__LINE__).touch();
-#else
-#define BOOST_MULTI_INDEX_CHECK_INVARIANT
-#endif
-
-namespace boost{
-
-namespace multi_index{
-
-template<typename Value,typename IndexSpecifierList,typename Allocator>
-class multi_index_container:
- private ::boost::base_from_member<
- typename boost::detail::allocator::rebind_to<
- Allocator,
- typename detail::multi_index_node_type<
- Value,IndexSpecifierList,Allocator>::type
- >::type>,
- BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS detail::header_holder<
- typename detail::multi_index_node_type<
- Value,IndexSpecifierList,Allocator>::type,
- multi_index_container<Value,IndexSpecifierList,Allocator> >,
- public detail::multi_index_base_type<
- Value,IndexSpecifierList,Allocator>::type
-{
-#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\
- BOOST_WORKAROUND(__MWERKS__,<=0x3003)
-/* The "ISO C++ Template Parser" option in CW8.3 has a problem with the
- * lifetime of const references bound to temporaries --precisely what
- * scopeguards are.
- */
-
-#pragma parse_mfunc_templ off
-#endif
-
-private:
-#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
- template <typename,typename,typename> friend class detail::index_base;
- template <typename,typename> friend class detail::header_holder;
- template <typename,typename> friend class detail::converter;
-#endif
-
- typedef typename detail::multi_index_base_type<
- Value,IndexSpecifierList,Allocator>::type super;
- typedef ::boost::base_from_member<
- typename boost::detail::allocator::rebind_to<
- Allocator,
- typename super::node_type
- >::type> bfm_allocator;
- typedef detail::header_holder<
- typename super::node_type,
- multi_index_container> bfm_header;
-
-public:
- /* All types are inherited from super, a few are explicitly
- * brought forward here to save us some typename's.
- */
-
-#if defined(BOOST_MSVC)
- typedef
- detail::default_constructible_tuple_cons<
- typename super::ctor_args_list> ctor_args_list;
-#else
- typedef typename super::ctor_args_list ctor_args_list;
-#endif
-
- typedef IndexSpecifierList index_specifier_type_list;
- typedef typename super::index_type_list index_type_list;
- typedef typename super::iterator_type_list iterator_type_list;
- typedef typename super::const_iterator_type_list const_iterator_type_list;
- typedef typename super::value_type value_type;
- typedef typename super::final_allocator_type allocator_type;
- typedef typename super::iterator iterator;
- typedef typename super::const_iterator const_iterator;
-
- BOOST_STATIC_ASSERT(
- detail::no_duplicate_tags_in_index_list<index_type_list>::value);
-
- /* global project() needs to see this publicly */
-
- typedef typename super::node_type node_type;
-
- /* construct/copy/destroy */
-
- explicit multi_index_container(
-
-#if BOOST_WORKAROUND(__IBMCPP__,<=600)
- /* VisualAge seems to have an ETI issue with the default values
- * for arguments args_list and al.
- */
-
- const ctor_args_list& args_list=
- typename mpl::identity<multi_index_container>::type::
- ctor_args_list(),
- const allocator_type& al=
- typename mpl::identity<multi_index_container>::type::
- allocator_type()):
-#else
- const ctor_args_list& args_list=ctor_args_list(),
- const allocator_type& al=allocator_type()):
-#endif
-
- bfm_allocator(al),
- super(args_list,bfm_allocator::member),
- node_count(0)
- {
- BOOST_MULTI_INDEX_CHECK_INVARIANT;
- }
-
- template<typename InputIterator>
- multi_index_container(
- InputIterator first,InputIterator last,
-
-#if BOOST_WORKAROUND(__IBMCPP__,<=600)
- /* VisualAge seems to have an ETI issue with the default values
- * for arguments args_list and al.
- */
-
- const ctor_args_list& args_list=
- typename mpl::identity<multi_index_container>::type::
- ctor_args_list(),
- const allocator_type& al=
- typename mpl::identity<multi_index_container>::type::
- allocator_type()):
-#else
- const ctor_args_list& args_list=ctor_args_list(),
- const allocator_type& al=allocator_type()):
-#endif
-
- bfm_allocator(al),
- super(args_list,bfm_allocator::member),
- node_count(0)
- {
- BOOST_MULTI_INDEX_CHECK_INVARIANT;
- BOOST_TRY{
- iterator hint=super::end();
- for(;first!=last;++first){
- hint=super::make_iterator(insert_(*first,hint.get_node()).first);
- }
- }
- BOOST_CATCH(...){
- clear_();
- BOOST_RETHROW;
- }
- BOOST_CATCH_END
- }
-
- multi_index_container(
- const multi_index_container<Value,IndexSpecifierList,Allocator>& x):
- bfm_allocator(x.bfm_allocator::member),
- super(x),
- node_count(0)
- {
- copy_map_type map(bfm_allocator::member,x.size(),x.header(),header());
- for(const_iterator it=x.begin(),it_end=x.end();it!=it_end;++it){
- map.clone(it.get_node());
- }
- super::copy_(x,map);
- map.release();
- node_count=x.size();
-
- /* Not until this point are the indices required to be consistent,
- * hence the position of the invariant checker.
- */
-
- BOOST_MULTI_INDEX_CHECK_INVARIANT;
- }
-
- ~multi_index_container()
- {
- delete_all_nodes_();
- }
-
- multi_index_container<Value,IndexSpecifierList,Allocator>& operator=(
- const multi_index_container<Value,IndexSpecifierList,Allocator>& x)
- {
- BOOST_MULTI_INDEX_CHECK_INVARIANT;
- multi_index_container<Value,IndexSpecifierList,Allocator> tmp(x);
- this->swap(tmp);
- return *this;
- }
-
- allocator_type get_allocator()const
- {
- return allocator_type(bfm_allocator::member);
- }
-
- /* retrieval of indices by number */
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES)
- template<int N>
- struct nth_index
- {
- BOOST_STATIC_ASSERT(N>=0&&N<mpl::size<index_type_list>::type::value);
- typedef typename mpl::at_c<index_type_list,N>::type type;
- };
-
- template<int N>
- typename nth_index<N>::type& get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
- {
- BOOST_STATIC_ASSERT(N>=0&&N<mpl::size<index_type_list>::type::value);
- return *this;
- }
-
- template<int N>
- const typename nth_index<N>::type& get(
- BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int,N))const
- {
- BOOST_STATIC_ASSERT(N>=0&&N<mpl::size<index_type_list>::type::value);
- return *this;
- }
-#endif
-
- /* retrieval of indices by tag */
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES)
- template<typename Tag>
- struct index
- {
- typedef typename mpl::find_if<
- index_type_list,
- detail::has_tag<Tag>
- >::type iter;
-
- BOOST_STATIC_CONSTANT(
- bool,index_found=!(is_same<iter,typename mpl::end<index_type_list>::type >::value));
- BOOST_STATIC_ASSERT(index_found);
-
- typedef typename mpl::deref<iter>::type type;
- };
-
- template<typename Tag>
- typename index<Tag>::type& get(BOOST_EXPLICIT_TEMPLATE_TYPE(Tag))
- {
- return *this;
- }
-
- template<typename Tag>
- const typename index<Tag>::type& get(
- BOOST_EXPLICIT_TEMPLATE_TYPE(Tag))const
- {
- return *this;
- }
-#endif
-
- /* projection of iterators by number */
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES)
- template<int N>
- struct nth_index_iterator
- {
- typedef typename nth_index<N>::type::iterator type;
- };
-
- template<int N>
- struct nth_index_const_iterator
- {
- typedef typename nth_index<N>::type::const_iterator type;
- };
-
- template<int N,typename IteratorType>
- typename nth_index_iterator<N>::type project(
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
- {
- typedef typename nth_index<N>::type index;
-
- BOOST_STATIC_ASSERT(
- (mpl::contains<iterator_type_list,IteratorType>::value));
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(
- it,static_cast<typename IteratorType::container_type&>(*this));
-
- return index::make_iterator(static_cast<node_type*>(it.get_node()));
- }
-
- template<int N,typename IteratorType>
- typename nth_index_const_iterator<N>::type project(
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))const
- {
- typedef typename nth_index<N>::type index;
-
- BOOST_STATIC_ASSERT((
- mpl::contains<iterator_type_list,IteratorType>::value||
- mpl::contains<const_iterator_type_list,IteratorType>::value));
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(
- it,static_cast<const typename IteratorType::container_type&>(*this));
- return index::make_iterator(static_cast<node_type*>(it.get_node()));
- }
-#endif
-
- /* projection of iterators by tag */
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES)
- template<typename Tag>
- struct index_iterator
- {
- typedef typename index<Tag>::type::iterator type;
- };
-
- template<typename Tag>
- struct index_const_iterator
- {
- typedef typename index<Tag>::type::const_iterator type;
- };
-
- template<typename Tag,typename IteratorType>
- typename index_iterator<Tag>::type project(
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))
- {
- typedef typename index<Tag>::type index;
-
- BOOST_STATIC_ASSERT(
- (mpl::contains<iterator_type_list,IteratorType>::value));
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(
- it,static_cast<typename IteratorType::container_type&>(*this));
- return index::make_iterator(static_cast<node_type*>(it.get_node()));
- }
-
- template<typename Tag,typename IteratorType>
- typename index_const_iterator<Tag>::type project(
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))const
- {
- typedef typename index<Tag>::type index;
-
- BOOST_STATIC_ASSERT((
- mpl::contains<iterator_type_list,IteratorType>::value||
- mpl::contains<const_iterator_type_list,IteratorType>::value));
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(
- it,static_cast<const typename IteratorType::container_type&>(*this));
- return index::make_iterator(static_cast<node_type*>(it.get_node()));
- }
-#endif
-
-BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS:
- typedef typename super::copy_map_type copy_map_type;
-
- node_type* header()const
- {
- return bfm_header::member;
- }
-
- node_type* allocate_node()
- {
- return bfm_allocator::member.allocate(1);
- }
-
- void deallocate_node(node_type* x)
- {
- bfm_allocator::member.deallocate(x,1);
- }
-
- bool empty_()const
- {
- return node_count==0;
- }
-
- std::size_t size_()const
- {
- return node_count;
- }
-
- std::size_t max_size_()const
- {
- return static_cast<std::size_t >(-1);
- }
-
- std::pair<node_type*,bool> insert_(const Value& v)
- {
- node_type* x=allocate_node();
- BOOST_TRY{
- node_type* res=super::insert_(v,x);
- if(res==x){
- ++node_count;
- return std::pair<node_type*,bool>(res,true);
- }
- else{
- deallocate_node(x);
- return std::pair<node_type*,bool>(res,false);
- }
- }
- BOOST_CATCH(...){
- deallocate_node(x);
- BOOST_RETHROW;
- }
- BOOST_CATCH_END
- }
-
- std::pair<node_type*,bool> insert_(const Value& v,node_type* position)
- {
- node_type* x=allocate_node();
- BOOST_TRY{
- node_type* res=super::insert_(v,position,x);
- if(res==x){
- ++node_count;
- return std::pair<node_type*,bool>(res,true);
- }
- else{
- deallocate_node(x);
- return std::pair<node_type*,bool>(res,false);
- }
- }
- BOOST_CATCH(...){
- deallocate_node(x);
- BOOST_RETHROW;
- }
- BOOST_CATCH_END
- }
-
- void erase_(node_type* x)
- {
- super::erase_(x);
- deallocate_node(x);
- --node_count;
- }
-
- void delete_node_(node_type* x)
- {
- super::delete_node_(x);
- deallocate_node(x);
- }
-
- void delete_all_nodes_()
- {
- super::delete_all_nodes_();
- }
-
- void clear_()
- {
- delete_all_nodes_();
- super::clear_();
- node_count=0;
- }
-
- void swap_(multi_index_container<Value,IndexSpecifierList,Allocator>& x)
- {
- std::swap(bfm_header::member,x.bfm_header::member);
- super::swap_(x);
- std::swap(node_count,x.node_count);
- }
-
- bool replace_(const Value& k,node_type* x)
- {
- return super::replace_(k,x);
- }
-
- template<typename Modifier>
- bool modify_(Modifier mod,node_type* x)
- {
- mod(const_cast<value_type&>(x->value));
-
- BOOST_TRY{
- if(!super::modify_(x)){
- deallocate_node(x);
- --node_count;
- return false;
- }
- else return true;
- }
- BOOST_CATCH(...){
- deallocate_node(x);
- --node_count;
- BOOST_RETHROW;
- }
- BOOST_CATCH_END
- }
-
-#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)
- /* serialization */
-
- friend class boost::serialization::access;
-
- BOOST_SERIALIZATION_SPLIT_MEMBER()
-
- typedef typename super::index_saver_type index_saver_type;
- typedef typename super::index_loader_type index_loader_type;
-
- template<class Archive>
- void save(Archive& ar,const unsigned int version)const
- {
- const std::size_t s=size_();
- ar<<serialization::make_nvp("count",s);
- index_saver_type sm(bfm_allocator::member,s);
-
- for(iterator it=super::begin(),it_end=super::end();it!=it_end;++it){
- ar<<serialization::make_nvp("item",*it);
- sm.add(it.get_node(),ar,version);
- }
- sm.add_track(header(),ar,version);
-
- super::save_(ar,version,sm);
- }
-
- template<class Archive>
- void load(Archive& ar,const unsigned int version)
- {
- BOOST_MULTI_INDEX_CHECK_INVARIANT;
-
- clear_();
-
- std::size_t s;
- ar>>serialization::make_nvp("count",s);
- index_loader_type lm(bfm_allocator::member,s);
-
- for(std::size_t n=0;n<s;++n){
- detail::archive_constructed<Value> value("item",ar,version);
- std::pair<node_type*,bool> p=insert_(
- value.get(),super::end().get_node());
- if(!p.second)throw_exception(
- archive::archive_exception(
- archive::archive_exception::other_exception));
- ar.reset_object_address(&p.first->value,&value.get());
- lm.add(p.first,ar,version);
- }
- lm.add_track(header(),ar,version);
-
- super::load_(ar,version,lm);
- }
-#endif
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)
- /* invariant stuff */
-
- bool invariant_()const
- {
- return super::invariant_();
- }
-
- void check_invariant_()const
- {
- BOOST_MULTI_INDEX_INVARIANT_ASSERT(invariant_());
- }
-#endif
-
-private:
- std::size_t node_count;
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\
- BOOST_WORKAROUND(__MWERKS__,<=0x3003)
-#pragma parse_mfunc_templ reset
-#endif
-};
-
-/* retrieval of indices by number */
-
-template<typename MultiIndexContainer,int N>
-struct nth_index
-{
- BOOST_STATIC_CONSTANT(
- int,
- M=mpl::size<typename MultiIndexContainer::index_type_list>::type::value);
- BOOST_STATIC_ASSERT(N>=0&&N<M);
- typedef typename mpl::at_c<
- typename MultiIndexContainer::index_type_list,N>::type type;
-};
-
-template<int N,typename Value,typename IndexSpecifierList,typename Allocator>
-typename nth_index<
- multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type&
-get(
- multi_index_container<Value,IndexSpecifierList,Allocator>& m
- BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename nth_index<
- multi_index_container<
- Value,IndexSpecifierList,Allocator>,
- N
- >::type index;
-
- BOOST_STATIC_ASSERT(N>=0&&
- N<
- mpl::size<
- BOOST_DEDUCED_TYPENAME multi_index_type::index_type_list
- >::type::value);
-
- return detail::converter<multi_index_type,index>::index(m);
-}
-
-template<int N,typename Value,typename IndexSpecifierList,typename Allocator>
-const typename nth_index<
- multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type&
-get(
- const multi_index_container<Value,IndexSpecifierList,Allocator>& m
- BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename nth_index<
- multi_index_container<
- Value,IndexSpecifierList,Allocator>,
- N
- >::type index;
-
- BOOST_STATIC_ASSERT(N>=0&&
- N<
- mpl::size<
- BOOST_DEDUCED_TYPENAME multi_index_type::index_type_list
- >::type::value);
-
- return detail::converter<multi_index_type,index>::index(m);
-}
-
-/* retrieval of indices by tag */
-
-template<typename MultiIndexContainer,typename Tag>
-struct index
-{
- typedef typename MultiIndexContainer::index_type_list index_type_list;
-
- typedef typename mpl::find_if<
- index_type_list,
- detail::has_tag<Tag>
- >::type iter;
-
- BOOST_STATIC_CONSTANT(
- bool,index_found=!(is_same<iter,typename mpl::end<index_type_list>::type >::value));
- BOOST_STATIC_ASSERT(index_found);
-
- typedef typename mpl::deref<iter>::type type;
-};
-
-template<
- typename Tag,typename Value,typename IndexSpecifierList,typename Allocator
->
-typename ::boost::multi_index::index<
- multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type&
-get(
- multi_index_container<Value,IndexSpecifierList,Allocator>& m
- BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename ::boost::multi_index::index<
- multi_index_container<
- Value,IndexSpecifierList,Allocator>,
- Tag
- >::type index;
-
- return detail::converter<multi_index_type,index>::index(m);
-}
-
-template<
- typename Tag,typename Value,typename IndexSpecifierList,typename Allocator
->
-const typename ::boost::multi_index::index<
- multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type&
-get(
- const multi_index_container<Value,IndexSpecifierList,Allocator>& m
- BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename ::boost::multi_index::index<
- multi_index_container<
- Value,IndexSpecifierList,Allocator>,
- Tag
- >::type index;
-
- return detail::converter<multi_index_type,index>::index(m);
-}
-
-/* projection of iterators by number */
-
-template<typename MultiIndexContainer,int N>
-struct nth_index_iterator
-{
- typedef typename detail::prevent_eti<
- nth_index<MultiIndexContainer,N>,
- typename nth_index<MultiIndexContainer,N>::type>::type::iterator type;
-};
-
-template<typename MultiIndexContainer,int N>
-struct nth_index_const_iterator
-{
- typedef typename detail::prevent_eti<
- nth_index<MultiIndexContainer,N>,
- typename nth_index<MultiIndexContainer,N>::type
- >::type::const_iterator type;
-};
-
-template<
- int N,typename IteratorType,
- typename Value,typename IndexSpecifierList,typename Allocator>
-typename nth_index_iterator<
- multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type
-project(
- multi_index_container<Value,IndexSpecifierList,Allocator>& m,
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename nth_index<multi_index_type,N>::type index;
-
-#if !defined(BOOST_MSVC)||!(BOOST_MSVC<1300) /* this ain't work in MSVC++ 6.0 */
- BOOST_STATIC_ASSERT((
- mpl::contains<
- BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list,
- IteratorType>::value));
-#endif
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE)
- typedef detail::converter<
- multi_index_type,
- BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter;
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m));
-#endif
-
- return detail::converter<multi_index_type,index>::iterator(
- m,static_cast<typename multi_index_type::node_type*>(it.get_node()));
-}
-
-template<
- int N,typename IteratorType,
- typename Value,typename IndexSpecifierList,typename Allocator>
-typename nth_index_const_iterator<
- multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type
-project(
- const multi_index_container<Value,IndexSpecifierList,Allocator>& m,
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename nth_index<multi_index_type,N>::type index;
-
-#if !defined(BOOST_MSVC)||!(BOOST_MSVC<1300) /* this ain't work in MSVC++ 6.0 */
- BOOST_STATIC_ASSERT((
- mpl::contains<
- BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list,
- IteratorType>::value||
- mpl::contains<
- BOOST_DEDUCED_TYPENAME multi_index_type::const_iterator_type_list,
- IteratorType>::value));
-#endif
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE)
- typedef detail::converter<
- multi_index_type,
- BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter;
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m));
-#endif
-
- return detail::converter<multi_index_type,index>::const_iterator(
- m,static_cast<typename multi_index_type::node_type*>(it.get_node()));
-}
-
-/* projection of iterators by tag */
-
-template<typename MultiIndexContainer,typename Tag>
-struct index_iterator
-{
- typedef typename ::boost::multi_index::index<
- MultiIndexContainer,Tag>::type::iterator type;
-};
-
-template<typename MultiIndexContainer,typename Tag>
-struct index_const_iterator
-{
- typedef typename ::boost::multi_index::index<
- MultiIndexContainer,Tag>::type::const_iterator type;
-};
-
-template<
- typename Tag,typename IteratorType,
- typename Value,typename IndexSpecifierList,typename Allocator>
-typename index_iterator<
- multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type
-project(
- multi_index_container<Value,IndexSpecifierList,Allocator>& m,
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename ::boost::multi_index::index<
- multi_index_type,Tag>::type index;
-
-#if !defined(BOOST_MSVC)||!(BOOST_MSVC<1300) /* this ain't work in MSVC++ 6.0 */
- BOOST_STATIC_ASSERT((
- mpl::contains<
- BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list,
- IteratorType>::value));
-#endif
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE)
- typedef detail::converter<
- multi_index_type,
- BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter;
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m));
-#endif
-
- return detail::converter<multi_index_type,index>::iterator(
- m,static_cast<typename multi_index_type::node_type*>(it.get_node()));
-}
-
-template<
- typename Tag,typename IteratorType,
- typename Value,typename IndexSpecifierList,typename Allocator>
-typename index_const_iterator<
- multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type
-project(
- const multi_index_container<Value,IndexSpecifierList,Allocator>& m,
- IteratorType it
- BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))
-{
- typedef multi_index_container<
- Value,IndexSpecifierList,Allocator> multi_index_type;
- typedef typename ::boost::multi_index::index<
- multi_index_type,Tag>::type index;
-
-#if !defined(BOOST_MSVC)||!(BOOST_MSVC<1300) /* this ain't work in MSVC++ 6.0 */
- BOOST_STATIC_ASSERT((
- mpl::contains<
- BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list,
- IteratorType>::value||
- mpl::contains<
- BOOST_DEDUCED_TYPENAME multi_index_type::const_iterator_type_list,
- IteratorType>::value));
-#endif
-
- BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-
-#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE)
- typedef detail::converter<
- multi_index_type,
- BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter;
- BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m));
-#endif
-
- return detail::converter<multi_index_type,index>::const_iterator(
- m,static_cast<typename multi_index_type::node_type*>(it.get_node()));
-}
-
-/* Comparison. Simple forward to first index. */
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator==(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y)
-{
- return get<0>(x)==get<0>(y);
-}
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator<(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y)
-{
- return get<0>(x)<get<0>(y);
-}
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator!=(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y)
-{
- return get<0>(x)!=get<0>(y);
-}
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator>(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y)
-{
- return get<0>(x)>get<0>(y);
-}
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator>=(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y)
-{
- return get<0>(x)>=get<0>(y);
-}
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator<=(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y)
-{
- return get<0>(x)<=get<0>(y);
-}
-
-/* specialized algorithms */
-
-template<typename Value,typename IndexSpecifierList,typename Allocator>
-void swap(
- multi_index_container<Value,IndexSpecifierList,Allocator>& x,
- multi_index_container<Value,IndexSpecifierList,Allocator>& y)
-{
- x.swap(y);
-}
-
-} /* namespace multi_index */
-
-/* Associated global functions are promoted to namespace boost, except
- * comparison operators and swap, which are meant to be Koenig looked-up.
- */
-
-using multi_index::get;
-using multi_index::project;
-
-} /* namespace boost */
-
-#undef BOOST_MULTI_INDEX_CHECK_INVARIANT
-
-#endif
+++ /dev/null
-/* Copyright 2003-2005 JoaquÃn M López Muñoz.
- * Distributed under the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org/libs/multi_index for library home page.
- */
-
-#ifndef BOOST_MULTI_INDEX_FWD_HPP
-#define BOOST_MULTI_INDEX_FWD_HPP
-
-#if defined(_MSC_VER)&&(_MSC_VER>=1200)
-#pragma once
-#endif
-
-#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
-#include <boost/multi_index/identity.hpp>
-#include <boost/multi_index/indexed_by.hpp>
-#include <boost/multi_index/ordered_index_fwd.hpp>
-#include <memory>
-
-namespace boost{
-
-namespace multi_index{
-
-/* Default value for IndexSpecifierList specifies a container
- * equivalent to std::set<Value>.
- */
-
-template<
- typename Value,
- typename IndexSpecifierList=indexed_by<ordered_unique<identity<Value> > >,
- typename Allocator=std::allocator<Value> >
-class multi_index_container;
-
-template<typename MultiIndexContainer,int N>
-struct nth_index;
-
-template<typename MultiIndexContainer,typename Tag>
-struct index;
-
-template<typename MultiIndexContainer,int N>
-struct nth_index_iterator;
-
-template<typename MultiIndexContainer,int N>
-struct nth_index_const_iterator;
-
-template<typename MultiIndexContainer,typename Tag>
-struct index_iterator;
-
-template<typename MultiIndexContainer,typename Tag>
-struct index_const_iterator;
-
-/* get and project functions not fwd declared due to problems
- * with dependent typenames
- */
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator==(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator<(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator!=(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator>(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator>=(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);
-
-template<
- typename Value1,typename IndexSpecifierList1,typename Allocator1,
- typename Value2,typename IndexSpecifierList2,typename Allocator2
->
-bool operator<=(
- const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,
- const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);
-
-template<typename Value,typename IndexSpecifierList,typename Allocator>
-void swap(
- multi_index_container<Value,IndexSpecifierList,Allocator>& x,
- multi_index_container<Value,IndexSpecifierList,Allocator>& y);
-
-} /* namespace multi_index */
-
-/* multi_index_container, being the main type of this library, is promoted to
- * namespace boost.
- */
-
-using multi_index::multi_index_container;
-
-} /* namespace boost */
-
-#endif
+++ /dev/null
-// Boost next_prior.hpp header file ---------------------------------------//
-
-// (C) Copyright Dave Abrahams and Daniel Walker 1999-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/libs/utility for documentation.
-
-// Revision History
-// 13 Dec 2003 Added next(x, n) and prior(x, n) (Daniel Walker)
-
-#ifndef BOOST_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_NEXT_PRIOR_HPP_INCLUDED
-
-#include <iterator>
-
-namespace boost {
-
-// Helper functions for classes like bidirectional iterators not supporting
-// operator+ and operator-
-//
-// Usage:
-// const std::list<T>::iterator p = get_some_iterator();
-// const std::list<T>::iterator prev = boost::prior(p);
-// const std::list<T>::iterator next = boost::next(prev, 2);
-
-// Contributed by Dave Abrahams
-
-template <class T>
-inline T next(T x) { return ++x; }
-
-template <class T, class Distance>
-inline T next(T x, Distance n)
-{
- std::advance(x, n);
- return x;
-}
-
-template <class T>
-inline T prior(T x) { return --x; }
-
-template <class T, class Distance>
-inline T prior(T x, Distance n)
-{
- std::advance(x, -n);
- return x;
-}
-
-} // namespace boost
-
-#endif // BOOST_NEXT_PRIOR_HPP_INCLUDED
+++ /dev/null
-// -------------------------------------
-//
-// (C) Copyright Gennaro Prota 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_NON_TYPE_HPP_GP_20030417
-#define BOOST_NON_TYPE_HPP_GP_20030417
-
-
-namespace boost {
-
- // Just a simple "envelope" for non-type template parameters. Useful
- // to work around some MSVC deficiencies.
-
- template <typename T, T n>
- struct non_type { };
-
-
-}
-
-
-#endif // include guard
+++ /dev/null
-// Boost noncopyable.hpp header file --------------------------------------//
-
-// (C) Copyright Beman Dawes 1999-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/libs/utility for documentation.
-
-#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED
-#define BOOST_NONCOPYABLE_HPP_INCLUDED
-
-namespace boost {
-
-// Private copy constructor and copy assignment ensure classes derived from
-// class noncopyable cannot be copied.
-
-// Contributed by Dave Abrahams
-
-namespace noncopyable_ // protection from unintended ADL
-{
- class noncopyable
- {
- protected:
- noncopyable() {}
- ~noncopyable() {}
- private: // emphasize the following members are private
- noncopyable( const noncopyable& );
- const noncopyable& operator=( const noncopyable& );
- };
-}
-
-typedef noncopyable_::noncopyable noncopyable;
-
-} // namespace boost
-
-#endif // BOOST_NONCOPYABLE_HPP_INCLUDED
+++ /dev/null
-/* boost nondet_random.hpp header file
- *
- * Copyright Jens Maurer 2000
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * $Id$
- *
- * Revision history
- * 2000-02-18 Portability fixes (thanks to Beman Dawes)
- */
-
-// See http://www.boost.org/libs/random for documentation.
-
-
-#ifndef BOOST_NONDET_RANDOM_HPP
-#define BOOST_NONDET_RANDOM_HPP
-
-#include <string> // std::abs
-#include <algorithm> // std::min
-#include <cmath>
-#include <boost/config.hpp>
-#include <boost/utility.hpp> // noncopyable
-#include <boost/integer_traits.hpp> // compile-time integral limits
-
-namespace boost {
-
-// use some OS service to generate non-deterministic random numbers
-class random_device : private noncopyable
-{
-public:
- typedef unsigned int result_type;
- BOOST_STATIC_CONSTANT(bool, has_fixed_range = true);
- BOOST_STATIC_CONSTANT(result_type, min_value = integer_traits<result_type>::const_min);
- BOOST_STATIC_CONSTANT(result_type, max_value = integer_traits<result_type>::const_max);
-
- result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return min_value; }
- result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return max_value; }
- explicit random_device(const std::string& token = default_token);
- ~random_device();
- double entropy() const;
- unsigned int operator()();
-
-private:
- static const char * const default_token;
-
- /*
- * std:5.3.5/5 [expr.delete]: "If the object being deleted has incomplete
- * class type at the point of deletion and the complete class has a
- * non-trivial destructor [...], the behavior is undefined".
- * This disallows the use of scoped_ptr<> with pimpl-like classes
- * having a non-trivial destructor.
- */
- class impl;
- impl * pimpl;
-};
-
-
-// TODO: put Schneier's Yarrow-160 algorithm here.
-
-} // namespace boost
-
-#endif /* BOOST_NONDET_RANDOM_HPP */
+++ /dev/null
-// Copyright (C) 2003, 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_NONE_17SEP2003_HPP
-#define BOOST_NONE_17SEP2003_HPP
-
-#include "boost/none_t.hpp"
-
-// NOTE: Borland users have to include this header outside any precompiled headers
-// (bcc<=5.64 cannot include instance data in a precompiled header)
-
-namespace boost {
-
-namespace {
-
-none_t const none = ((none_t)0) ;
-
-}
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-// Copyright (C) 2003, 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_NONE_T_17SEP2003_HPP
-#define BOOST_NONE_T_17SEP2003_HPP
-
-namespace boost {
-
-namespace detail { struct none_helper{}; }
-
-typedef int detail::none_helper::*none_t ;
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-// Boost operators.hpp header file ----------------------------------------//
-
-// (C) Copyright David Abrahams, Jeremy Siek, Daryle Walker 1999-2001.
-// Distributed under the 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/utility/operators.htm for documentation.
-
-// Revision History
-// 21 Oct 02 Modified implementation of operators to allow compilers with a
-// correct named return value optimization (NRVO) to produce optimal
-// code. (Daniel Frey)
-// 02 Dec 01 Bug fixed in random_access_iteratable. (Helmut Zeisel)
-// 28 Sep 01 Factored out iterator operator groups. (Daryle Walker)
-// 27 Aug 01 'left' form for non commutative operators added;
-// additional classes for groups of related operators added;
-// workaround for empty base class optimization
-// bug of GCC 3.0 (Helmut Zeisel)
-// 25 Jun 01 output_iterator_helper changes: removed default template
-// parameters, added support for self-proxying, additional
-// documentation and tests (Aleksey Gurtovoy)
-// 29 May 01 Added operator classes for << and >>. Added input and output
-// iterator helper classes. Added classes to connect equality and
-// relational operators. Added classes for groups of related
-// operators. Reimplemented example operator and iterator helper
-// classes in terms of the new groups. (Daryle Walker, with help
-// from Alexy Gurtovoy)
-// 11 Feb 01 Fixed bugs in the iterator helpers which prevented explicitly
-// supplied arguments from actually being used (Dave Abrahams)
-// 04 Jul 00 Fixed NO_OPERATORS_IN_NAMESPACE bugs, major cleanup and
-// refactoring of compiler workarounds, additional documentation
-// (Alexy Gurtovoy and Mark Rodgers with some help and prompting from
-// Dave Abrahams)
-// 28 Jun 00 General cleanup and integration of bugfixes from Mark Rodgers and
-// Jeremy Siek (Dave Abrahams)
-// 20 Jun 00 Changes to accommodate Borland C++Builder 4 and Borland C++ 5.5
-// (Mark Rodgers)
-// 20 Jun 00 Minor fixes to the prior revision (Aleksey Gurtovoy)
-// 10 Jun 00 Support for the base class chaining technique was added
-// (Aleksey Gurtovoy). See documentation and the comments below
-// for the details.
-// 12 Dec 99 Initial version with iterator operators (Jeremy Siek)
-// 18 Nov 99 Change name "divideable" to "dividable", remove unnecessary
-// specializations of dividable, subtractable, modable (Ed Brey)
-// 17 Nov 99 Add comments (Beman Dawes)
-// Remove unnecessary specialization of operators<> (Ed Brey)
-// 15 Nov 99 Fix less_than_comparable<T,U> second operand type for first two
-// operators.(Beman Dawes)
-// 12 Nov 99 Add operators templates (Ed Brey)
-// 11 Nov 99 Add single template parameter version for compilers without
-// partial specialization (Beman Dawes)
-// 10 Nov 99 Initial version
-
-// 10 Jun 00:
-// An additional optional template parameter was added to most of
-// operator templates to support the base class chaining technique (see
-// documentation for the details). Unfortunately, a straightforward
-// implementation of this change would have broken compatibility with the
-// previous version of the library by making it impossible to use the same
-// template name (e.g. 'addable') for both the 1- and 2-argument versions of
-// an operator template. This implementation solves the backward-compatibility
-// issue at the cost of some simplicity.
-//
-// One of the complications is an existence of special auxiliary class template
-// 'is_chained_base<>' (see 'detail' namespace below), which is used
-// to determine whether its template parameter is a library's operator template
-// or not. You have to specialize 'is_chained_base<>' for each new
-// operator template you add to the library.
-//
-// However, most of the non-trivial implementation details are hidden behind
-// several local macros defined below, and as soon as you understand them,
-// you understand the whole library implementation.
-
-#ifndef BOOST_OPERATORS_HPP
-#define BOOST_OPERATORS_HPP
-
-#include <boost/config.hpp>
-#include <boost/iterator.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma set woff 1234
-#endif
-
-#if defined(BOOST_MSVC)
-# pragma warning( disable : 4284 ) // complaint about return type of
-#endif // operator-> not begin a UDT
-
-namespace boost {
-namespace detail {
-
-// Helmut Zeisel, empty base class optimization bug with GCC 3.0.0
-#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==0 && __GNU_PATCHLEVEL__==0
-class empty_base {
- bool dummy;
-};
-#else
-class empty_base {};
-#endif
-
-} // namespace detail
-} // namespace boost
-
-// In this section we supply the xxxx1 and xxxx2 forms of the operator
-// templates, which are explicitly targeted at the 1-type-argument and
-// 2-type-argument operator forms, respectively. Some compilers get confused
-// when inline friend functions are overloaded in namespaces other than the
-// global namespace. When BOOST_NO_OPERATORS_IN_NAMESPACE is defined, all of
-// these templates must go in the global namespace.
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-namespace boost
-{
-#endif
-
-// Basic operator classes (contributed by Dave Abrahams) ------------------//
-
-// Note that friend functions defined in a class are implicitly inline.
-// See the C++ std, 11.4 [class.friend] paragraph 5
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct less_than_comparable2 : B
-{
- friend bool operator<=(const T& x, const U& y) { return !(x > y); }
- friend bool operator>=(const T& x, const U& y) { return !(x < y); }
- friend bool operator>(const U& x, const T& y) { return y < x; }
- friend bool operator<(const U& x, const T& y) { return y > x; }
- friend bool operator<=(const U& x, const T& y) { return !(y < x); }
- friend bool operator>=(const U& x, const T& y) { return !(y > x); }
-};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct less_than_comparable1 : B
-{
- friend bool operator>(const T& x, const T& y) { return y < x; }
- friend bool operator<=(const T& x, const T& y) { return !(y < x); }
- friend bool operator>=(const T& x, const T& y) { return !(x < y); }
-};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct equality_comparable2 : B
-{
- friend bool operator==(const U& y, const T& x) { return x == y; }
- friend bool operator!=(const U& y, const T& x) { return !(x == y); }
- friend bool operator!=(const T& y, const U& x) { return !(y == x); }
-};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct equality_comparable1 : B
-{
- friend bool operator!=(const T& x, const T& y) { return !(x == y); }
-};
-
-// A macro which produces "name_2left" from "name".
-#define BOOST_OPERATOR2_LEFT(name) name##2##_##left
-
-// NRVO-friendly implementation (contributed by Daniel Frey) ---------------//
-
-#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
-
-// This is the optimal implementation for ISO/ANSI C++,
-// but it requires the compiler to implement the NRVO.
-// If the compiler has no NRVO, this is the best symmetric
-// implementation available.
-
-#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( const T& lhs, const U& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
- friend T operator OP( const U& lhs, const T& rhs ) \
- { T nrv( rhs ); nrv OP##= lhs; return nrv; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( const T& lhs, const T& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-};
-
-#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( const T& lhs, const U& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-}; \
- \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct BOOST_OPERATOR2_LEFT(NAME) : B \
-{ \
- friend T operator OP( const U& lhs, const T& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( const T& lhs, const T& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-};
-
-#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
-
-// For compilers without NRVO the following code is optimal, but not
-// symmetric! Note that the implementation of
-// BOOST_OPERATOR2_LEFT(NAME) only looks cool, but doesn't provide
-// optimization opportunities to the compiler :)
-
-#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
- friend T operator OP( const U& lhs, T rhs ) { return rhs OP##= lhs; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
-};
-
-#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
-}; \
- \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct BOOST_OPERATOR2_LEFT(NAME) : B \
-{ \
- friend T operator OP( const U& lhs, const T& rhs ) \
- { return T( lhs ) OP##= rhs; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
-};
-
-#endif // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
-
-BOOST_BINARY_OPERATOR_COMMUTATIVE( multipliable, * )
-BOOST_BINARY_OPERATOR_COMMUTATIVE( addable, + )
-BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( subtractable, - )
-BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( dividable, / )
-BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( modable, % )
-BOOST_BINARY_OPERATOR_COMMUTATIVE( xorable, ^ )
-BOOST_BINARY_OPERATOR_COMMUTATIVE( andable, & )
-BOOST_BINARY_OPERATOR_COMMUTATIVE( orable, | )
-
-#undef BOOST_BINARY_OPERATOR_COMMUTATIVE
-#undef BOOST_BINARY_OPERATOR_NON_COMMUTATIVE
-#undef BOOST_OPERATOR2_LEFT
-
-// incrementable and decrementable contributed by Jeremy Siek
-
-template <class T, class B = ::boost::detail::empty_base>
-struct incrementable : B
-{
- friend T operator++(T& x, int)
- {
- incrementable_type nrv(x);
- ++x;
- return nrv;
- }
-private: // The use of this typedef works around a Borland bug
- typedef T incrementable_type;
-};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct decrementable : B
-{
- friend T operator--(T& x, int)
- {
- decrementable_type nrv(x);
- --x;
- return nrv;
- }
-private: // The use of this typedef works around a Borland bug
- typedef T decrementable_type;
-};
-
-// Iterator operator classes (contributed by Jeremy Siek) ------------------//
-
-template <class T, class P, class B = ::boost::detail::empty_base>
-struct dereferenceable : B
-{
- P operator->() const
- {
- return &*static_cast<const T&>(*this);
- }
-};
-
-template <class T, class I, class R, class B = ::boost::detail::empty_base>
-struct indexable : B
-{
- R operator[](I n) const
- {
- return *(static_cast<const T&>(*this) + n);
- }
-};
-
-// More operator classes (contributed by Daryle Walker) --------------------//
-// (NRVO-friendly implementation contributed by Daniel Frey) ---------------//
-
-#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
-
-#define BOOST_BINARY_OPERATOR( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( const T& lhs, const U& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( const T& lhs, const T& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-};
-
-#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
-
-#define BOOST_BINARY_OPERATOR( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
-};
-
-#endif // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
-
-BOOST_BINARY_OPERATOR( left_shiftable, << )
-BOOST_BINARY_OPERATOR( right_shiftable, >> )
-
-#undef BOOST_BINARY_OPERATOR
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct equivalent2 : B
-{
- friend bool operator==(const T& x, const U& y)
- {
- return !(x < y) && !(x > y);
- }
-};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct equivalent1 : B
-{
- friend bool operator==(const T&x, const T&y)
- {
- return !(x < y) && !(y < x);
- }
-};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct partially_ordered2 : B
-{
- friend bool operator<=(const T& x, const U& y)
- { return (x < y) || (x == y); }
- friend bool operator>=(const T& x, const U& y)
- { return (x > y) || (x == y); }
- friend bool operator>(const U& x, const T& y)
- { return y < x; }
- friend bool operator<(const U& x, const T& y)
- { return y > x; }
- friend bool operator<=(const U& x, const T& y)
- { return (y > x) || (y == x); }
- friend bool operator>=(const U& x, const T& y)
- { return (y < x) || (y == x); }
-};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct partially_ordered1 : B
-{
- friend bool operator>(const T& x, const T& y)
- { return y < x; }
- friend bool operator<=(const T& x, const T& y)
- { return (x < y) || (x == y); }
- friend bool operator>=(const T& x, const T& y)
- { return (y < x) || (x == y); }
-};
-
-// Combined operator classes (contributed by Daryle Walker) ----------------//
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct totally_ordered2
- : less_than_comparable2<T, U
- , equality_comparable2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct totally_ordered1
- : less_than_comparable1<T
- , equality_comparable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct additive2
- : addable2<T, U
- , subtractable2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct additive1
- : addable1<T
- , subtractable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct multiplicative2
- : multipliable2<T, U
- , dividable2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct multiplicative1
- : multipliable1<T
- , dividable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct integer_multiplicative2
- : multiplicative2<T, U
- , modable2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct integer_multiplicative1
- : multiplicative1<T
- , modable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct arithmetic2
- : additive2<T, U
- , multiplicative2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct arithmetic1
- : additive1<T
- , multiplicative1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct integer_arithmetic2
- : additive2<T, U
- , integer_multiplicative2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct integer_arithmetic1
- : additive1<T
- , integer_multiplicative1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct bitwise2
- : xorable2<T, U
- , andable2<T, U
- , orable2<T, U, B
- > > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct bitwise1
- : xorable1<T
- , andable1<T
- , orable1<T, B
- > > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct unit_steppable
- : incrementable<T
- , decrementable<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct shiftable2
- : left_shiftable2<T, U
- , right_shiftable2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct shiftable1
- : left_shiftable1<T
- , right_shiftable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct ring_operators2
- : additive2<T, U
- , subtractable2_left<T, U
- , multipliable2<T, U, B
- > > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct ring_operators1
- : additive1<T
- , multipliable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct ordered_ring_operators2
- : ring_operators2<T, U
- , totally_ordered2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct ordered_ring_operators1
- : ring_operators1<T
- , totally_ordered1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct field_operators2
- : ring_operators2<T, U
- , dividable2<T, U
- , dividable2_left<T, U, B
- > > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct field_operators1
- : ring_operators1<T
- , dividable1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct ordered_field_operators2
- : field_operators2<T, U
- , totally_ordered2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct ordered_field_operators1
- : field_operators1<T
- , totally_ordered1<T, B
- > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct euclidian_ring_operators2
- : ring_operators2<T, U
- , dividable2<T, U
- , dividable2_left<T, U
- , modable2<T, U
- , modable2_left<T, U, B
- > > > > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct euclidian_ring_operators1
- : ring_operators1<T
- , dividable1<T
- , modable1<T, B
- > > > {};
-
-template <class T, class U, class B = ::boost::detail::empty_base>
-struct ordered_euclidian_ring_operators2
- : totally_ordered2<T, U
- , euclidian_ring_operators2<T, U, B
- > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct ordered_euclidian_ring_operators1
- : totally_ordered1<T
- , euclidian_ring_operators1<T, B
- > > {};
-
-template <class T, class P, class B = ::boost::detail::empty_base>
-struct input_iteratable
- : equality_comparable1<T
- , incrementable<T
- , dereferenceable<T, P, B
- > > > {};
-
-template <class T, class B = ::boost::detail::empty_base>
-struct output_iteratable
- : incrementable<T, B
- > {};
-
-template <class T, class P, class B = ::boost::detail::empty_base>
-struct forward_iteratable
- : input_iteratable<T, P, B
- > {};
-
-template <class T, class P, class B = ::boost::detail::empty_base>
-struct bidirectional_iteratable
- : forward_iteratable<T, P
- , decrementable<T, B
- > > {};
-
-// To avoid repeated derivation from equality_comparable,
-// which is an indirect base class of bidirectional_iterable,
-// random_access_iteratable must not be derived from totally_ordered1
-// but from less_than_comparable1 only. (Helmut Zeisel, 02-Dec-2001)
-template <class T, class P, class D, class R, class B = ::boost::detail::empty_base>
-struct random_access_iteratable
- : bidirectional_iteratable<T, P
- , less_than_comparable1<T
- , additive2<T, D
- , indexable<T, D, R, B
- > > > > {};
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-} // namespace boost
-#endif // BOOST_NO_OPERATORS_IN_NAMESPACE
-
-
-// BOOST_IMPORT_TEMPLATE1 .. BOOST_IMPORT_TEMPLATE4 -
-//
-// When BOOST_NO_OPERATORS_IN_NAMESPACE is defined we need a way to import an
-// operator template into the boost namespace. BOOST_IMPORT_TEMPLATE1 is used
-// for one-argument forms of operator templates; BOOST_IMPORT_TEMPLATE2 for
-// two-argument forms. Note that these macros expect to be invoked from within
-// boost.
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-
- // The template is already in boost so we have nothing to do.
-# define BOOST_IMPORT_TEMPLATE4(template_name)
-# define BOOST_IMPORT_TEMPLATE3(template_name)
-# define BOOST_IMPORT_TEMPLATE2(template_name)
-# define BOOST_IMPORT_TEMPLATE1(template_name)
-
-#else // BOOST_NO_OPERATORS_IN_NAMESPACE
-
-# ifndef BOOST_NO_USING_TEMPLATE
-
- // Bring the names in with a using-declaration
- // to avoid stressing the compiler.
-# define BOOST_IMPORT_TEMPLATE4(template_name) using ::template_name;
-# define BOOST_IMPORT_TEMPLATE3(template_name) using ::template_name;
-# define BOOST_IMPORT_TEMPLATE2(template_name) using ::template_name;
-# define BOOST_IMPORT_TEMPLATE1(template_name) using ::template_name;
-
-# else
-
- // Otherwise, because a Borland C++ 5.5 bug prevents a using declaration
- // from working, we are forced to use inheritance for that compiler.
-# define BOOST_IMPORT_TEMPLATE4(template_name) \
- template <class T, class U, class V, class W, class B = ::boost::detail::empty_base> \
- struct template_name : ::template_name<T, U, V, W, B> {};
-
-# define BOOST_IMPORT_TEMPLATE3(template_name) \
- template <class T, class U, class V, class B = ::boost::detail::empty_base> \
- struct template_name : ::template_name<T, U, V, B> {};
-
-# define BOOST_IMPORT_TEMPLATE2(template_name) \
- template <class T, class U, class B = ::boost::detail::empty_base> \
- struct template_name : ::template_name<T, U, B> {};
-
-# define BOOST_IMPORT_TEMPLATE1(template_name) \
- template <class T, class B = ::boost::detail::empty_base> \
- struct template_name : ::template_name<T, B> {};
-
-# endif // BOOST_NO_USING_TEMPLATE
-
-#endif // BOOST_NO_OPERATORS_IN_NAMESPACE
-
-//
-// Here's where we put it all together, defining the xxxx forms of the templates
-// in namespace boost. We also define specializations of is_chained_base<> for
-// the xxxx, xxxx1, and xxxx2 templates, importing them into boost:: as
-// necessary.
-//
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// is_chained_base<> - a traits class used to distinguish whether an operator
-// template argument is being used for base class chaining, or is specifying a
-// 2nd argument type.
-
-namespace boost {
-// A type parameter is used instead of a plain bool because Borland's compiler
-// didn't cope well with the more obvious non-type template parameter.
-namespace detail {
- struct true_t {};
- struct false_t {};
-} // namespace detail
-
-// Unspecialized version assumes that most types are not being used for base
-// class chaining. We specialize for the operator templates defined in this
-// library.
-template<class T> struct is_chained_base {
- typedef ::boost::detail::false_t value;
-};
-
-} // namespace boost
-
-// Import a 4-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define BOOST_OPERATOR_TEMPLATE4(template_name4) \
- BOOST_IMPORT_TEMPLATE4(template_name4) \
- template<class T, class U, class V, class W, class B> \
- struct is_chained_base< ::boost::template_name4<T, U, V, W, B> > { \
- typedef ::boost::detail::true_t value; \
- };
-
-// Import a 3-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define BOOST_OPERATOR_TEMPLATE3(template_name3) \
- BOOST_IMPORT_TEMPLATE3(template_name3) \
- template<class T, class U, class V, class B> \
- struct is_chained_base< ::boost::template_name3<T, U, V, B> > { \
- typedef ::boost::detail::true_t value; \
- };
-
-// Import a 2-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define BOOST_OPERATOR_TEMPLATE2(template_name2) \
- BOOST_IMPORT_TEMPLATE2(template_name2) \
- template<class T, class U, class B> \
- struct is_chained_base< ::boost::template_name2<T, U, B> > { \
- typedef ::boost::detail::true_t value; \
- };
-
-// Import a 1-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define BOOST_OPERATOR_TEMPLATE1(template_name1) \
- BOOST_IMPORT_TEMPLATE1(template_name1) \
- template<class T, class B> \
- struct is_chained_base< ::boost::template_name1<T, B> > { \
- typedef ::boost::detail::true_t value; \
- };
-
-// BOOST_OPERATOR_TEMPLATE(template_name) defines template_name<> such that it
-// can be used for specifying both 1-argument and 2-argument forms. Requires the
-// existence of two previously defined class templates named '<template_name>1'
-// and '<template_name>2' which must implement the corresponding 1- and 2-
-// argument forms.
-//
-// The template type parameter O == is_chained_base<U>::value is used to
-// distinguish whether the 2nd argument to <template_name> is being used for
-// base class chaining from another boost operator template or is describing a
-// 2nd operand type. O == true_t only when U is actually an another operator
-// template from the library. Partial specialization is used to select an
-// implementation in terms of either '<template_name>1' or '<template_name>2'.
-//
-
-# define BOOST_OPERATOR_TEMPLATE(template_name) \
-template <class T \
- ,class U = T \
- ,class B = ::boost::detail::empty_base \
- ,class O = typename is_chained_base<U>::value \
- > \
-struct template_name : template_name##2<T, U, B> {}; \
- \
-template<class T, class U, class B> \
-struct template_name<T, U, B, ::boost::detail::true_t> \
- : template_name##1<T, U> {}; \
- \
-template <class T, class B> \
-struct template_name<T, T, B, ::boost::detail::false_t> \
- : template_name##1<T, B> {}; \
- \
-template<class T, class U, class B, class O> \
-struct is_chained_base< ::boost::template_name<T, U, B, O> > { \
- typedef ::boost::detail::true_t value; \
-}; \
- \
-BOOST_OPERATOR_TEMPLATE2(template_name##2) \
-BOOST_OPERATOR_TEMPLATE1(template_name##1)
-
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-# define BOOST_OPERATOR_TEMPLATE4(template_name4) \
- BOOST_IMPORT_TEMPLATE4(template_name4)
-# define BOOST_OPERATOR_TEMPLATE3(template_name3) \
- BOOST_IMPORT_TEMPLATE3(template_name3)
-# define BOOST_OPERATOR_TEMPLATE2(template_name2) \
- BOOST_IMPORT_TEMPLATE2(template_name2)
-# define BOOST_OPERATOR_TEMPLATE1(template_name1) \
- BOOST_IMPORT_TEMPLATE1(template_name1)
-
- // In this case we can only assume that template_name<> is equivalent to the
- // more commonly needed template_name1<> form.
-# define BOOST_OPERATOR_TEMPLATE(template_name) \
- template <class T, class B = ::boost::detail::empty_base> \
- struct template_name : template_name##1<T, B> {};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost {
-
-BOOST_OPERATOR_TEMPLATE(less_than_comparable)
-BOOST_OPERATOR_TEMPLATE(equality_comparable)
-BOOST_OPERATOR_TEMPLATE(multipliable)
-BOOST_OPERATOR_TEMPLATE(addable)
-BOOST_OPERATOR_TEMPLATE(subtractable)
-BOOST_OPERATOR_TEMPLATE2(subtractable2_left)
-BOOST_OPERATOR_TEMPLATE(dividable)
-BOOST_OPERATOR_TEMPLATE2(dividable2_left)
-BOOST_OPERATOR_TEMPLATE(modable)
-BOOST_OPERATOR_TEMPLATE2(modable2_left)
-BOOST_OPERATOR_TEMPLATE(xorable)
-BOOST_OPERATOR_TEMPLATE(andable)
-BOOST_OPERATOR_TEMPLATE(orable)
-
-BOOST_OPERATOR_TEMPLATE1(incrementable)
-BOOST_OPERATOR_TEMPLATE1(decrementable)
-
-BOOST_OPERATOR_TEMPLATE2(dereferenceable)
-BOOST_OPERATOR_TEMPLATE3(indexable)
-
-BOOST_OPERATOR_TEMPLATE(left_shiftable)
-BOOST_OPERATOR_TEMPLATE(right_shiftable)
-BOOST_OPERATOR_TEMPLATE(equivalent)
-BOOST_OPERATOR_TEMPLATE(partially_ordered)
-
-BOOST_OPERATOR_TEMPLATE(totally_ordered)
-BOOST_OPERATOR_TEMPLATE(additive)
-BOOST_OPERATOR_TEMPLATE(multiplicative)
-BOOST_OPERATOR_TEMPLATE(integer_multiplicative)
-BOOST_OPERATOR_TEMPLATE(arithmetic)
-BOOST_OPERATOR_TEMPLATE(integer_arithmetic)
-BOOST_OPERATOR_TEMPLATE(bitwise)
-BOOST_OPERATOR_TEMPLATE1(unit_steppable)
-BOOST_OPERATOR_TEMPLATE(shiftable)
-BOOST_OPERATOR_TEMPLATE(ring_operators)
-BOOST_OPERATOR_TEMPLATE(ordered_ring_operators)
-BOOST_OPERATOR_TEMPLATE(field_operators)
-BOOST_OPERATOR_TEMPLATE(ordered_field_operators)
-BOOST_OPERATOR_TEMPLATE(euclidian_ring_operators)
-BOOST_OPERATOR_TEMPLATE(ordered_euclidian_ring_operators)
-BOOST_OPERATOR_TEMPLATE2(input_iteratable)
-BOOST_OPERATOR_TEMPLATE1(output_iteratable)
-BOOST_OPERATOR_TEMPLATE2(forward_iteratable)
-BOOST_OPERATOR_TEMPLATE2(bidirectional_iteratable)
-BOOST_OPERATOR_TEMPLATE4(random_access_iteratable)
-
-#undef BOOST_OPERATOR_TEMPLATE
-#undef BOOST_OPERATOR_TEMPLATE4
-#undef BOOST_OPERATOR_TEMPLATE3
-#undef BOOST_OPERATOR_TEMPLATE2
-#undef BOOST_OPERATOR_TEMPLATE1
-#undef BOOST_IMPORT_TEMPLATE1
-#undef BOOST_IMPORT_TEMPLATE2
-#undef BOOST_IMPORT_TEMPLATE3
-#undef BOOST_IMPORT_TEMPLATE4
-
-// The following 'operators' classes can only be used portably if the derived class
-// declares ALL of the required member operators.
-template <class T, class U>
-struct operators2
- : totally_ordered2<T,U
- , integer_arithmetic2<T,U
- , bitwise2<T,U
- > > > {};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T, class U = T>
-struct operators : operators2<T, U> {};
-
-template <class T> struct operators<T, T>
-#else
-template <class T> struct operators
-#endif
- : totally_ordered<T
- , integer_arithmetic<T
- , bitwise<T
- , unit_steppable<T
- > > > > {};
-
-// Iterator helper classes (contributed by Jeremy Siek) -------------------//
-// (Input and output iterator helpers contributed by Daryle Walker) -------//
-// (Changed to use combined operator classes by Daryle Walker) ------------//
-template <class T,
- class V,
- class D = std::ptrdiff_t,
- class P = V const *,
- class R = V const &>
-struct input_iterator_helper
- : input_iteratable<T, P
- , boost::iterator<std::input_iterator_tag, V, D, P, R
- > > {};
-
-template<class T>
-struct output_iterator_helper
- : output_iteratable<T
- , boost::iterator<std::output_iterator_tag, void, void, void, void
- > >
-{
- T& operator*() { return static_cast<T&>(*this); }
- T& operator++() { return static_cast<T&>(*this); }
-};
-
-template <class T,
- class V,
- class D = std::ptrdiff_t,
- class P = V*,
- class R = V&>
-struct forward_iterator_helper
- : forward_iteratable<T, P
- , boost::iterator<std::forward_iterator_tag, V, D, P, R
- > > {};
-
-template <class T,
- class V,
- class D = std::ptrdiff_t,
- class P = V*,
- class R = V&>
-struct bidirectional_iterator_helper
- : bidirectional_iteratable<T, P
- , boost::iterator<std::bidirectional_iterator_tag, V, D, P, R
- > > {};
-
-template <class T,
- class V,
- class D = std::ptrdiff_t,
- class P = V*,
- class R = V&>
-struct random_access_iterator_helper
- : random_access_iteratable<T, P, D, R
- , boost::iterator<std::random_access_iterator_tag, V, D, P, R
- > >
-{
- friend D requires_difference_operator(const T& x, const T& y) {
- return x - y;
- }
-}; // random_access_iterator_helper
-
-} // namespace boost
-
-#if defined(__sgi) && !defined(__GNUC__)
-#pragma reset woff 1234
-#endif
-
-#endif // BOOST_OPERATORS_HPP
+++ /dev/null
-// Copyright (C) 2003, 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_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_FLC_19NOV2002_HPP
-
-#include "boost/optional/optional.hpp"
-
-#endif
-
+++ /dev/null
-// Copyright (C) 2003, 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_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
-
-#include<new>
-#include<algorithm>
-
-#include "boost/config.hpp"
-#include "boost/assert.hpp"
-#include "boost/type.hpp"
-#include "boost/type_traits/alignment_of.hpp"
-#include "boost/type_traits/type_with_alignment.hpp"
-#include "boost/type_traits/remove_reference.hpp"
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/mpl/if.hpp"
-#include "boost/mpl/bool.hpp"
-#include "boost/mpl/not.hpp"
-#include "boost/detail/reference_content.hpp"
-#include "boost/none_t.hpp"
-#include "boost/utility/compare_pointees.hpp"
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
-// VC6.0 has the following bug:
-// When a templated assignment operator exist, an implicit conversion
-// constructing an optional<T> is used when assigment of the form:
-// optional<T> opt ; opt = T(...);
-// is compiled.
-// However, optional's ctor is _explicit_ and the assignemt shouldn't compile.
-// Therefore, for VC6.0 templated assignment is disabled.
-//
-#define BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-// VC7.0 has the following bug:
-// When both a non-template and a template copy-ctor exist
-// and the templated version is made 'explicit', the explicit is also
-// given to the non-templated version, making the class non-implicitely-copyable.
-//
-#define BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)
-// AFAICT only VC7.1 correctly resolves the overload set
-// that includes the in-place factory taking functions,
-// so for the other VC versions, in-place factory support
-// is disabled
-#define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
-// BCB (5.5.1) cannot parse the nested template struct in an inplace factory.
-#define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-#endif
-
-#if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) \
- && BOOST_WORKAROUND(__BORLANDC__, <= 0x564)
-// BCB (up to 5.64) has the following bug:
-// If there is a member function/operator template of the form
-// template<class Expr> mfunc( Expr expr ) ;
-// some calls are resolved to this even if there are other better matches.
-// The effect of this bug is that calls to converting ctors and assignments
-// are incrorrectly sink to this general catch-all member function template as shown above.
-#define BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
-#endif
-
-
-namespace boost {
-
-class in_place_factory_base ;
-class typed_in_place_factory_base ;
-
-namespace optional_detail {
-
-// This local class is used instead of that in "aligned_storage.hpp"
-// because I've found the 'official' class to ICE BCB5.5
-// when some types are used with optional<>
-// (due to sizeof() passed down as a non-type template parameter)
-template <class T>
-class aligned_storage
-{
- // Borland ICEs if unnamed unions are used for this!
- union dummy_u
- {
- char data[ sizeof(T) ];
- BOOST_DEDUCED_TYPENAME type_with_alignment<
- ::boost::alignment_of<T>::value >::type aligner_;
- } dummy_ ;
-
- public:
-
- void const* address() const { return &dummy_.data[0]; }
- void * address() { return &dummy_.data[0]; }
-} ;
-
-template<class T>
-struct types_when_isnt_ref
-{
- typedef T const& reference_const_type ;
- typedef T & reference_type ;
- typedef T const* pointer_const_type ;
- typedef T * pointer_type ;
- typedef T const& argument_type ;
-} ;
-template<class T>
-struct types_when_is_ref
-{
- typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
-
- typedef raw_type& reference_const_type ;
- typedef raw_type& reference_type ;
- typedef raw_type* pointer_const_type ;
- typedef raw_type* pointer_type ;
- typedef raw_type& argument_type ;
-} ;
-
-struct optional_tag {} ;
-
-template<class T>
-class optional_base : public optional_tag
-{
- private :
-
- typedef BOOST_DEDUCED_TYPENAME detail::make_reference_content<T>::type internal_type ;
-
- typedef aligned_storage<internal_type> storage_type ;
-
- typedef types_when_isnt_ref<T> types_when_not_ref ;
- typedef types_when_is_ref<T> types_when_ref ;
-
- typedef optional_base<T> this_type ;
-
- protected :
-
- typedef T value_type ;
-
- typedef mpl::true_ is_reference_tag ;
- typedef mpl::false_ is_not_reference_tag ;
-
- typedef BOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
-
- typedef BOOST_DEDUCED_TYPENAME mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
-
- typedef bool (this_type::*unspecified_bool_type)() const;
-
- typedef BOOST_DEDUCED_TYPENAME types::reference_type reference_type ;
- typedef BOOST_DEDUCED_TYPENAME types::reference_const_type reference_const_type ;
- typedef BOOST_DEDUCED_TYPENAME types::pointer_type pointer_type ;
- typedef BOOST_DEDUCED_TYPENAME types::pointer_const_type pointer_const_type ;
- typedef BOOST_DEDUCED_TYPENAME types::argument_type argument_type ;
-
- // Creates an optional<T> uninitialized.
- // No-throw
- optional_base()
- :
- m_initialized(false) {}
-
- // Creates an optional<T> uninitialized.
- // No-throw
- optional_base ( none_t const& )
- :
- m_initialized(false) {}
-
- // Creates an optional<T> initialized with 'val'.
- // Can throw if T::T(T const&) does
- optional_base ( argument_type val )
- :
- m_initialized(false)
- {
- construct(val);
- }
-
- // Creates a deep copy of another optional<T>
- // Can throw if T::T(T const&) does
- optional_base ( optional_base const& rhs )
- :
- m_initialized(false)
- {
- if ( rhs.is_initialized() )
- construct(rhs.get_impl());
- }
-
-
- // This is used for both converting and in-place constructions.
- // Derived classes use the 'tag' to select the appropriate
- // implementation (the correct 'construct()' overload)
- template<class Expr>
- explicit optional_base ( Expr const& expr, Expr const* tag )
- :
- m_initialized(false)
- {
- construct(expr,tag);
- }
-
-
-
- // No-throw (assuming T::~T() doesn't)
- ~optional_base() { destroy() ; }
-
- // Assigns from another optional<T> (deep-copies the rhs value)
- void assign ( optional_base const& rhs )
- {
- if (is_initialized())
- {
- if ( rhs.is_initialized() )
- assign_value(rhs.get_impl(), is_reference_predicate() );
- else destroy();
- }
- else
- {
- if ( rhs.is_initialized() )
- construct(rhs.get_impl());
- }
- }
-
- // Assigns from a T (deep-copies the rhs value)
- void assign ( argument_type val )
- {
- if (is_initialized())
- assign_value(val, is_reference_predicate() );
- else construct(val);
- }
-
- // Assigns from "none", destroying the current value, if any, leaving this UNINITIALIZED
- // No-throw (assuming T::~T() doesn't)
- void assign ( none_t const& ) { destroy(); }
-
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
- template<class Expr>
- void assign_expr ( Expr const& expr, Expr const* tag )
- {
- if (is_initialized())
- assign_expr_to_initialized(expr,tag);
- else construct(expr,tag);
- }
-#endif
-
- public :
-
- // Destroys the current value, if any, leaving this UNINITIALIZED
- // No-throw (assuming T::~T() doesn't)
- void reset() { destroy(); }
-
- // Replaces the current value -if any- with 'val'
- void reset ( argument_type val ) { assign(val); }
-
- // Returns a pointer to the value if this is initialized, otherwise,
- // returns NULL.
- // No-throw
- pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; }
- pointer_type get_ptr() { return m_initialized ? get_ptr_impl() : 0 ; }
-
- bool is_initialized() const { return m_initialized ; }
-
- protected :
-
- void construct ( argument_type val )
- {
- new (m_storage.address()) internal_type(val) ;
- m_initialized = true ;
- }
-
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
- // Constructs in-place using the given factory
- template<class Expr>
- void construct ( Expr const& factory, in_place_factory_base const* )
- {
- BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
- factory.BOOST_NESTED_TEMPLATE apply<value_type>(m_storage.address()) ;
- m_initialized = true ;
- }
-
- // Constructs in-place using the given typed factory
- template<class Expr>
- void construct ( Expr const& factory, typed_in_place_factory_base const* )
- {
- BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
- factory.apply(m_storage.address()) ;
- m_initialized = true ;
- }
-
- template<class Expr>
- void assign_expr_to_initialized ( Expr const& factory, in_place_factory_base const* tag )
- {
- destroy();
- construct(factory,tag);
- }
-
- // Constructs in-place using the given typed factory
- template<class Expr>
- void assign_expr_to_initialized ( Expr const& factory, typed_in_place_factory_base const* tag )
- {
- destroy();
- construct(factory,tag);
- }
-#endif
-
- // Constructs using any expression implicitely convertible to the single argument
- // of a one-argument T constructor.
- // Converting constructions of optional<T> from optional<U> uses this function with
- // 'Expr' being of type 'U' and relying on a converting constructor of T from U.
- template<class Expr>
- void construct ( Expr const& expr, void const* )
- {
- new (m_storage.address()) internal_type(expr) ;
- m_initialized = true ;
- }
-
- // Assigns using a form any expression implicitely convertible to the single argument
- // of a T's assignment operator.
- // Converting assignments of optional<T> from optional<U> uses this function with
- // 'Expr' being of type 'U' and relying on a converting assignment of T from U.
- template<class Expr>
- void assign_expr_to_initialized ( Expr const& expr, void const* )
- {
- assign_value(expr, is_reference_predicate());
- }
-
-#ifdef BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
- // BCB5.64 (and probably lower versions) workaround.
- // The in-place factories are supported by means of catch-all constructors
- // and assignment operators (the functions are parameterized in terms of
- // an arbitrary 'Expr' type)
- // This compiler incorrectly resolves the overload set and sinks optional<T> and optional<U>
- // to the 'Expr'-taking functions even though explicit overloads are present for them.
- // Thus, the following overload is needed to properly handle the case when the 'lhs'
- // is another optional.
- //
- // For VC<=70 compilers this workaround dosen't work becasue the comnpiler issues and error
- // instead of choosing the wrong overload
- //
- // Notice that 'Expr' will be optional<T> or optional<U> (but not optional_base<..>)
- template<class Expr>
- void construct ( Expr const& expr, optional_tag const* )
- {
- if ( expr.is_initialized() )
- {
- // An exception can be thrown here.
- // It it happens, THIS will be left uninitialized.
- new (m_storage.address()) internal_type(expr.get()) ;
- m_initialized = true ;
- }
- }
-#endif
-
- void assign_value ( argument_type val, is_not_reference_tag ) { get_impl() = val; }
- void assign_value ( argument_type val, is_reference_tag ) { construct(val); }
-
- void destroy()
- {
- if ( m_initialized )
- destroy_impl(is_reference_predicate()) ;
- }
-
- unspecified_bool_type safe_bool() const { return m_initialized ? &this_type::is_initialized : 0 ; }
-
- reference_const_type get_impl() const { return dereference(get_object(), is_reference_predicate() ) ; }
- reference_type get_impl() { return dereference(get_object(), is_reference_predicate() ) ; }
-
- pointer_const_type get_ptr_impl() const { return cast_ptr(get_object(), is_reference_predicate() ) ; }
- pointer_type get_ptr_impl() { return cast_ptr(get_object(), is_reference_predicate() ) ; }
-
- private :
-
- // internal_type can be either T or reference_content<T>
- internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }
- internal_type * get_object() { return static_cast<internal_type *> (m_storage.address()); }
-
- // reference_content<T> lacks an implicit conversion to T&, so the following is needed to obtain a proper reference.
- reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; }
- reference_type dereference( internal_type* p, is_not_reference_tag ) { return *p ; }
- reference_const_type dereference( internal_type const* p, is_reference_tag ) const { return p->get() ; }
- reference_type dereference( internal_type* p, is_reference_tag ) { return p->get() ; }
-
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x564)
- void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->internal_type::~internal_type() ; m_initialized = false ; }
-#else
- void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
-#endif
-
- void destroy_impl ( is_reference_tag ) { m_initialized = false ; }
-
- // If T is of reference type, trying to get a pointer to the held value must result in a compile-time error.
- // Decent compilers should disallow conversions from reference_content<T>* to T*, but just in case,
- // the following olverloads are used to filter out the case and guarantee an error in case of T being a reference.
- pointer_const_type cast_ptr( internal_type const* p, is_not_reference_tag ) const { return p ; }
- pointer_type cast_ptr( internal_type * p, is_not_reference_tag ) { return p ; }
-
- bool m_initialized ;
- storage_type m_storage ;
-} ;
-
-} // namespace optional_detail
-
-template<class T>
-class optional : public optional_detail::optional_base<T>
-{
- typedef optional_detail::optional_base<T> base ;
-
- typedef BOOST_DEDUCED_TYPENAME base::unspecified_bool_type unspecified_bool_type ;
-
- public :
-
- typedef optional<T> this_type ;
-
- typedef BOOST_DEDUCED_TYPENAME base::value_type value_type ;
- typedef BOOST_DEDUCED_TYPENAME base::reference_type reference_type ;
- typedef BOOST_DEDUCED_TYPENAME base::reference_const_type reference_const_type ;
- typedef BOOST_DEDUCED_TYPENAME base::pointer_type pointer_type ;
- typedef BOOST_DEDUCED_TYPENAME base::pointer_const_type pointer_const_type ;
- typedef BOOST_DEDUCED_TYPENAME base::argument_type argument_type ;
-
- // Creates an optional<T> uninitialized.
- // No-throw
- optional() : base() {}
-
- // Creates an optional<T> uninitialized.
- // No-throw
- optional( none_t const& none_ ) : base(none_) {}
-
- // Creates an optional<T> initialized with 'val'.
- // Can throw if T::T(T const&) does
- optional ( argument_type val ) : base(val) {}
-
-
-#ifndef BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
- // NOTE: MSVC needs templated versions first
-
- // Creates a deep copy of another convertible optional<U>
- // Requires a valid conversion from U to T.
- // Can throw if T::T(U const&) does
- template<class U>
- explicit optional ( optional<U> const& rhs )
- :
- base()
- {
- if ( rhs.is_initialized() )
- this->construct(rhs.get());
- }
-#endif
-
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
- // Creates an optional<T> with an expression which can be either
- // (a) An instance of InPlaceFactory (i.e. in_place(a,b,...,n);
- // (b) An instance of TypedInPlaceFactory ( i.e. in_place<T>(a,b,...,n);
- // (c) Any expression implicitely convertible to the single type
- // of a one-argument T's constructor.
- // (d*) Weak compilers (BCB) might also resolved Expr as optional<T> and optional<U>
- // even though explicit overloads are present for these.
- // Depending on the above some T ctor is called.
- // Can throw is the resolved T ctor throws.
- template<class Expr>
- explicit optional ( Expr const& expr ) : base(expr,&expr) {}
-#endif
-
- // Creates a deep copy of another optional<T>
- // Can throw if T::T(T const&) does
- optional ( optional const& rhs ) : base(rhs) {}
-
- // No-throw (assuming T::~T() doesn't)
- ~optional() {}
-
-#if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) && !defined(BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION)
- // Assigns from an expression. See corresponding constructor.
- // Basic Guarantee: If the resolved T ctor throws, this is left UNINITIALIZED
- template<class Expr>
- optional& operator= ( Expr expr )
- {
- this->assign_expr(expr,&expr);
- return *this ;
- }
-#endif
-
-#ifndef BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
- // Assigns from another convertible optional<U> (converts && deep-copies the rhs value)
- // Requires a valid conversion from U to T.
- // Basic Guarantee: If T::T( U const& ) throws, this is left UNINITIALIZED
- template<class U>
- optional& operator= ( optional<U> const& rhs )
- {
- this->assign(rhs.get());
- return *this ;
- }
-#endif
-
- // Assigns from another optional<T> (deep-copies the rhs value)
- // Basic Guarantee: If T::T( T const& ) throws, this is left UNINITIALIZED
- // (NOTE: On BCB, this operator is not actually called and left is left UNMODIFIED in case of a throw)
- optional& operator= ( optional const& rhs )
- {
- this->assign( rhs ) ;
- return *this ;
- }
-
- // Assigns from a T (deep-copies the rhs value)
- // Basic Guarantee: If T::( T const& ) throws, this is left UNINITIALIZED
- optional& operator= ( argument_type val )
- {
- this->assign( val ) ;
- return *this ;
- }
-
- // Assigns from a "none"
- // Which destroys the current value, if any, leaving this UNINITIALIZED
- // No-throw (assuming T::~T() doesn't)
- optional& operator= ( none_t const& none_ )
- {
- this->assign( none_ ) ;
- return *this ;
- }
-
- // Returns a reference to the value if this is initialized, otherwise,
- // the behaviour is UNDEFINED
- // No-throw
- reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
- reference_type get() { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
-
- // Returns a pointer to the value if this is initialized, otherwise,
- // the behaviour is UNDEFINED
- // No-throw
- pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
- pointer_type operator->() { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
-
- // Returns a reference to the value if this is initialized, otherwise,
- // the behaviour is UNDEFINED
- // No-throw
- reference_const_type operator *() const { return this->get() ; }
- reference_type operator *() { return this->get() ; }
-
- // implicit conversion to "bool"
- // No-throw
- operator unspecified_bool_type() const { return this->safe_bool() ; }
-
- // This is provided for those compilers which don't like the conversion to bool
- // on some contexts.
- bool operator!() const { return !this->is_initialized() ; }
-} ;
-
-// Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
-get ( optional<T> const& opt )
-{
- return opt.get() ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_type
-get ( optional<T>& opt )
-{
- return opt.get() ;
-}
-
-// Returns a pointer to the value if this is initialized, otherwise, returns NULL.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
-get ( optional<T> const* opt )
-{
- return opt->get_ptr() ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
-get ( optional<T>* opt )
-{
- return opt->get_ptr() ;
-}
-
-// Returns a pointer to the value if this is initialized, otherwise, returns NULL.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
-get_pointer ( optional<T> const& opt )
-{
- return opt.get_ptr() ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
-get_pointer ( optional<T>& opt )
-{
- return opt.get_ptr() ;
-}
-
-// optional's relational operators ( ==, !=, <, >, <=, >= ) have deep-semantics (compare values).
-// WARNING: This is UNLIKE pointers. Use equal_pointees()/less_pointess() in generic code instead.
-
-template<class T>
-inline
-bool operator == ( optional<T> const& x, optional<T> const& y )
-{ return equal_pointees(x,y); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, optional<T> const& y )
-{ return less_pointees(x,y); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-template<class T>
-inline
-bool operator == ( optional<T> const& x, none_t const& )
-{ return equal_pointees(x, optional<T>() ); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, none_t const& )
-{ return less_pointees(x,optional<T>() ); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, none_t const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, none_t const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, none_t const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, none_t const& y )
-{ return !( x < y ) ; }
-
-template<class T>
-inline
-bool operator == ( none_t const& x, optional<T> const& y )
-{ return equal_pointees(optional<T>() ,y); }
-
-template<class T>
-inline
-bool operator < ( none_t const& x, optional<T> const& y )
-{ return less_pointees(optional<T>() ,y); }
-
-template<class T>
-inline
-bool operator != ( none_t const& x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( none_t const& x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( none_t const& x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( none_t const& x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-//
-// The following swap implementation follows the GCC workaround as found in
-// "boost/detail/compressed_pair.hpp"
-//
-namespace optional_detail {
-
-// GCC < 3.2 gets the using declaration at namespace scope (FLC, DWA)
-#if BOOST_WORKAROUND(__GNUC__, < 3) \
- || BOOST_WORKAROUND(__GNUC__, == 3) && __GNUC_MINOR__ <= 2
- using std::swap;
-#define BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE
-#endif
-
-// optional's swap:
-// If both are initialized, calls swap(T&, T&). If this swap throws, both will remain initialized but their values are now unspecified.
-// If only one is initialized, calls U.reset(*I), THEN I.reset().
-// If U.reset(*I) throws, both are left UNCHANGED (U is kept uinitialized and I is never reset)
-// If both are uninitialized, do nothing (no-throw)
-template<class T>
-inline
-void optional_swap ( optional<T>& x, optional<T>& y )
-{
- if ( !x && !!y )
- {
- x.reset(*y);
- y.reset();
- }
- else if ( !!x && !y )
- {
- y.reset(*x);
- x.reset();
- }
- else if ( !!x && !!y )
- {
-// GCC > 3.2 and all other compilers have the using declaration at function scope (FLC)
-#ifndef BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE
- // allow for Koenig lookup
- using std::swap ;
-#endif
- swap(*x,*y);
- }
-}
-
-} // namespace optional_detail
-
-template<class T> inline void swap ( optional<T>& x, optional<T>& y )
-{
- optional_detail::optional_swap(x,y);
-}
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-// Copyright (C) 2003, 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_FWD_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
-
-namespace boost {
-
-template<class T> class optional ;
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-// Copyright David Abrahams, Daniel Wallin 2005. Use, modification and
-// distribution is subject to the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_PARAMETER_050401_HPP
-#define BOOST_PARAMETER_050401_HPP
-
-#include <boost/parameter/parameters.hpp>
-#include <boost/parameter/keyword.hpp>
-#include <boost/parameter/binding.hpp>
-#include <boost/parameter/macros.hpp>
-#include <boost/parameter/match.hpp>
-
-#endif // BOOST_PARAMETER_050401_HPP
-
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//=======================================================================
-//
-//
-// Revision History:
-// 13 June 2001: Changed some names for clarity. (Jeremy Siek)
-// 01 April 2001: Modified to use new <boost/limits.hpp> header. (JMaddock)
-//
-#ifndef BOOST_GRAPH_DETAIL_BUCKET_SORTER_HPP
-#define BOOST_GRAPH_DETAIL_BUCKET_SORTER_HPP
-
-#include <vector>
-#include <cassert>
-#include <boost/limits.hpp>
-
-namespace boost {
-
- template <class BucketType, class ValueType, class Bucket,
- class ValueIndexMap>
- class bucket_sorter {
- public:
- typedef BucketType bucket_type;
- typedef ValueType value_type;
- typedef typename std::vector<value_type>::size_type size_type;
-
- bucket_sorter(size_type _length, bucket_type _max_bucket,
- const Bucket& _bucket = Bucket(),
- const ValueIndexMap& _id = ValueIndexMap())
- : head(_max_bucket, invalid_value()),
- next(_length, invalid_value()),
- prev(_length, invalid_value()),
- id_to_value(_length),
- bucket(_bucket), id(_id) { }
-
- void remove(const value_type& x) {
- const size_type i = get(id, x);
- const size_type& next_node = next[i];
- const size_type& prev_node = prev[i];
-
- //check if i is the end of the bucket list
- if ( next_node != invalid_value() )
- prev[next_node] = prev_node;
- //check if i is the begin of the bucket list
- if ( prev_node != invalid_value() )
- next[prev_node] = next_node;
- else //need update head of current bucket list
- head[ bucket[x] ] = next_node;
- }
-
- void push(const value_type& x) {
- id_to_value[get(id, x)] = x;
- (*this)[bucket[x]].push(x);
- }
-
- void update(const value_type& x) {
- remove(x);
- (*this)[bucket[x]].push(x);
- }
- // private:
- // with KCC, the nested stack class is having access problems
- // despite the friend decl.
- static size_type invalid_value() {
- return (std::numeric_limits<size_type>::max)();
- }
-
- typedef typename std::vector<size_type>::iterator Iter;
- typedef typename std::vector<value_type>::iterator IndexValueMap;
-
- public:
- friend class stack;
-
- class stack {
- public:
- stack(bucket_type _bucket_id, Iter h, Iter n, Iter p, IndexValueMap v,
- const ValueIndexMap& _id)
- : bucket_id(_bucket_id), head(h), next(n), prev(p), value(v), id(_id) {}
-
- // Avoid using default arg for ValueIndexMap so that the default
- // constructor of the ValueIndexMap is not required if not used.
- stack(bucket_type _bucket_id, Iter h, Iter n, Iter p, IndexValueMap v)
- : bucket_id(_bucket_id), head(h), next(n), prev(p), value(v) {}
-
- void push(const value_type& x) {
- const size_type new_head = get(id, x);
- const size_type current = head[bucket_id];
- if ( current != invalid_value() )
- prev[current] = new_head;
- prev[new_head] = invalid_value();
- next[new_head] = current;
- head[bucket_id] = new_head;
- }
- void pop() {
- size_type current = head[bucket_id];
- size_type next_node = next[current];
- head[bucket_id] = next_node;
- if ( next_node != invalid_value() )
- prev[next_node] = invalid_value();
- }
- value_type& top() { return value[ head[bucket_id] ]; }
- const value_type& top() const { return value[ head[bucket_id] ]; }
- bool empty() const { return head[bucket_id] == invalid_value(); }
- private:
- bucket_type bucket_id;
- Iter head;
- Iter next;
- Iter prev;
- IndexValueMap value;
- ValueIndexMap id;
- };
-
- stack operator[](const bucket_type& i) {
- assert(i < head.size());
- return stack(i, head.begin(), next.begin(), prev.begin(),
- id_to_value.begin(), id);
- }
- protected:
- std::vector<size_type> head;
- std::vector<size_type> next;
- std::vector<size_type> prev;
- std::vector<value_type> id_to_value;
- Bucket bucket;
- ValueIndexMap id;
- };
-
-}
-
-#endif
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-
-#ifndef BOOST_GRAPH_DETAIL_CONTAINER_TRAITS_H
-#define BOOST_GRAPH_DETAIL_CONTAINER_TRAITS_H
-
-// Sure would be nice to be able to forward declare these
-// instead of pulling in all the headers. Too bad that
-// is not legal. There ought to be a standard <stlfwd> header. -JGS
-
-#include <boost/next_prior.hpp>
-
-#include <algorithm> // for std::remove
-#include <vector>
-#include <list>
-#include <map>
-#include <set>
-#ifndef BOOST_NO_SLIST
-# include <slist>
-#endif
-#ifndef BOOST_NO_HASH
-# include <hash_map>
-# include <hash_set>
-#endif
-
-// The content of this file is in 'graph_detail' because otherwise
-// there will be name clashes with
-// sandbox/boost/sequence_algo/container_traits.hpp
-// The 'detail' subnamespace will still cause problems.
-namespace boost { namespace graph_detail {
-
- //======================================================================
- // Container Category Tags
- //
- // They use virtual inheritance because there are lots of
- // inheritance diamonds.
-
- struct container_tag { };
- struct forward_container_tag : virtual public container_tag { };
- struct reversible_container_tag : virtual public forward_container_tag { };
- struct random_access_container_tag
- : virtual public reversible_container_tag { };
-
- struct sequence_tag : virtual public forward_container_tag { };
-
- struct associative_container_tag : virtual public forward_container_tag { };
-
- struct sorted_associative_container_tag
- : virtual public associative_container_tag,
- virtual public reversible_container_tag { };
-
- struct front_insertion_sequence_tag : virtual public sequence_tag { };
- struct back_insertion_sequence_tag : virtual public sequence_tag { };
-
- struct unique_associative_container_tag
- : virtual public associative_container_tag { };
- struct multiple_associative_container_tag
- : virtual public associative_container_tag { };
- struct simple_associative_container_tag
- : virtual public associative_container_tag { };
- struct pair_associative_container_tag
- : virtual public associative_container_tag { };
-
-
- //======================================================================
- // Iterator Stability Tags
- //
- // Do mutating operations such as insert/erase/resize invalidate all
- // outstanding iterators?
-
- struct stable_tag { };
- struct unstable_tag { };
-
- //======================================================================
- // Container Traits Class and container_category() function
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // don't use this unless there is partial specialization
- template <class Container>
- struct container_traits {
- typedef typename Container::category category;
- typedef typename Container::iterator_stability iterator_stability;
- };
-#endif
-
- // Use this as a compile-time assertion that X is stable
- inline void require_stable(stable_tag) { }
-
- // std::vector
- struct vector_tag :
- virtual public random_access_container_tag,
- virtual public back_insertion_sequence_tag { };
-
- template <class T, class Alloc>
- vector_tag container_category(const std::vector<T,Alloc>&)
- { return vector_tag(); }
-
- template <class T, class Alloc>
- unstable_tag iterator_stability(const std::vector<T,Alloc>&)
- { return unstable_tag(); }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class T, class Alloc>
- struct container_traits< std::vector<T,Alloc> > {
- typedef vector_tag category;
- typedef unstable_tag iterator_stability;
- };
-#endif
-
- // std::list
- struct list_tag :
- virtual public reversible_container_tag,
- virtual public back_insertion_sequence_tag
- // this causes problems for push_dispatch...
- // virtual public front_insertion_sequence_tag
- { };
-
- template <class T, class Alloc>
- list_tag container_category(const std::list<T,Alloc>&)
- { return list_tag(); }
-
- template <class T, class Alloc>
- stable_tag iterator_stability(const std::list<T,Alloc>&)
- { return stable_tag(); }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class T, class Alloc>
- struct container_traits< std::list<T,Alloc> > {
- typedef list_tag category;
- typedef stable_tag iterator_stability;
- };
-#endif
-
-
- // std::slist
-#ifndef BOOST_NO_SLIST
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class T, class Alloc>
- struct container_traits<BOOST_STD_EXTENSION_NAMESPACE::slist<T,Alloc> > {
- typedef front_insertion_sequence_tag category;
- typedef stable_tag iterator_stability;
- };
-#endif
- template <class T, class Alloc>
- front_insertion_sequence_tag container_category(
- const BOOST_STD_EXTENSION_NAMESPACE::slist<T,Alloc>&
- )
- { return front_insertion_sequence_tag(); }
-
- template <class T, class Alloc>
- stable_tag iterator_stability(
- const BOOST_STD_EXTENSION_NAMESPACE::slist<T,Alloc>&)
- { return stable_tag(); }
-#endif
-
-
- // std::set
- struct set_tag :
- virtual public sorted_associative_container_tag,
- virtual public simple_associative_container_tag,
- virtual public unique_associative_container_tag
- { };
-
- template <class Key, class Cmp, class Alloc>
- set_tag container_category(const std::set<Key,Cmp,Alloc>&)
- { return set_tag(); }
-
- template <class Key, class Cmp, class Alloc>
- stable_tag iterator_stability(const std::set<Key,Cmp,Alloc>&)
- { return stable_tag(); }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Key, class Cmp, class Alloc>
- struct container_traits< std::set<Key,Cmp,Alloc> > {
- typedef set_tag category;
- typedef stable_tag iterator_stability;
- };
-#endif
-
- // std::multiset
- struct multiset_tag :
- virtual public sorted_associative_container_tag,
- virtual public simple_associative_container_tag,
- virtual public multiple_associative_container_tag
- { };
-
- template <class Key, class Cmp, class Alloc>
- multiset_tag container_category(const std::multiset<Key,Cmp,Alloc>&)
- { return multiset_tag(); }
-
- template <class Key, class Cmp, class Alloc>
- stable_tag iterator_stability(const std::multiset<Key,Cmp,Alloc>&)
- { return stable_tag(); }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Key, class Cmp, class Alloc>
- struct container_traits< std::multiset<Key,Cmp,Alloc> > {
- typedef multiset_tag category;
- typedef stable_tag iterator_stability;
- };
-#endif
-
- // deque
-
- // std::map
- struct map_tag :
- virtual public sorted_associative_container_tag,
- virtual public pair_associative_container_tag,
- virtual public unique_associative_container_tag
- { };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Key, class T, class Cmp, class Alloc>
- struct container_traits< std::map<Key,T,Cmp,Alloc> > {
- typedef map_tag category;
- typedef stable_tag iterator_stability;
- };
-#endif
-
- template <class Key, class T, class Cmp, class Alloc>
- map_tag container_category(const std::map<Key,T,Cmp,Alloc>&)
- { return map_tag(); }
-
- template <class Key, class T, class Cmp, class Alloc>
- stable_tag iterator_stability(const std::map<Key,T,Cmp,Alloc>&)
- { return stable_tag(); }
-
- // std::multimap
- struct multimap_tag :
- virtual public sorted_associative_container_tag,
- virtual public pair_associative_container_tag,
- virtual public multiple_associative_container_tag
- { };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Key, class T, class Cmp, class Alloc>
- struct container_traits< std::multimap<Key,T,Cmp,Alloc> > {
- typedef multimap_tag category;
- typedef stable_tag iterator_stability;
- };
-#endif
-
- template <class Key, class T, class Cmp, class Alloc>
- multimap_tag container_category(const std::multimap<Key,T,Cmp,Alloc>&)
- { return multimap_tag(); }
-
- template <class Key, class T, class Cmp, class Alloc>
- stable_tag iterator_stability(const std::multimap<Key,T,Cmp,Alloc>&)
- { return stable_tag(); }
-
-
- // hash_set, hash_map
-
-#ifndef BOOST_NO_HASH
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class Key, class Eq, class Hash, class Alloc>
- struct container_traits< BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc> > {
- typedef set_tag category;
- typedef stable_tag iterator_stability; // is this right?
- };
- template <class Key, class T, class Eq, class Hash, class Alloc>
- struct container_traits< BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc> > {
- typedef map_tag category;
- typedef stable_tag iterator_stability; // is this right?
- };
-#endif
- template <class Key, class Eq, class Hash, class Alloc>
- set_tag container_category(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>&)
- { return set_tag(); }
-
- template <class Key, class T, class Eq, class Hash, class Alloc>
- map_tag container_category(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>&)
- { return map_tag(); }
-
- template <class Key, class Eq, class Hash, class Alloc>
- stable_tag iterator_stability(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>&)
- { return stable_tag(); }
-
- template <class Key, class T, class Eq, class Hash, class Alloc>
- stable_tag iterator_stability(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>&)
- { return stable_tag(); }
-#endif
-
-
-
- //===========================================================================
- // Generalized Container Functions
-
-
- // Erase
- template <class Sequence, class T>
- void erase_dispatch(Sequence& c, const T& x,
- sequence_tag)
- {
- c.erase(std::remove(c.begin(), c.end(), x), c.end());
- }
-
- template <class AssociativeContainer, class T>
- void erase_dispatch(AssociativeContainer& c, const T& x,
- associative_container_tag)
- {
- c.erase(x);
- }
- template <class Container, class T>
- void erase(Container& c, const T& x)
- {
- erase_dispatch(c, x, container_category(c));
- }
-
- // Erase If
- template <class Sequence, class Predicate, class IteratorStability>
- void erase_if_dispatch(Sequence& c, Predicate p,
- sequence_tag, IteratorStability)
- {
-#if 0
- c.erase(std::remove_if(c.begin(), c.end(), p), c.end());
-#else
- if (! c.empty())
- c.erase(std::remove_if(c.begin(), c.end(), p), c.end());
-#endif
- }
- template <class AssociativeContainer, class Predicate>
- void erase_if_dispatch(AssociativeContainer& c, Predicate p,
- associative_container_tag, stable_tag)
- {
- typename AssociativeContainer::iterator i, next;
- for (i = next = c.begin(); next != c.end(); i = next) {
- ++next;
- if (p(*i))
- c.erase(i);
- }
- }
- template <class AssociativeContainer, class Predicate>
- void erase_if_dispatch(AssociativeContainer& c, Predicate p,
- associative_container_tag, unstable_tag)
- {
- // This method is really slow, so hopefully we won't have any
- // associative containers with unstable iterators!
- // Is there a better way to do this?
- typename AssociativeContainer::iterator i;
- typename AssociativeContainer::size_type n = c.size();
- while (n--)
- for (i = c.begin(); i != c.end(); ++i)
- if (p(*i)) {
- c.erase(i);
- break;
- }
- }
- template <class Container, class Predicate>
- void erase_if(Container& c, Predicate p)
- {
- erase_if_dispatch(c, p, container_category(c), iterator_stability(c));
- }
-
- // Push
- template <class Container, class T>
- std::pair<typename Container::iterator, bool>
- push_dispatch(Container& c, const T& v, back_insertion_sequence_tag)
- {
- c.push_back(v);
- return std::make_pair(boost::prior(c.end()), true);
- }
-
- template <class Container, class T>
- std::pair<typename Container::iterator, bool>
- push_dispatch(Container& c, const T& v, front_insertion_sequence_tag)
- {
- c.push_front(v);
- return std::make_pair(c.begin(), true);
- }
-
- template <class AssociativeContainer, class T>
- std::pair<typename AssociativeContainer::iterator, bool>
- push_dispatch(AssociativeContainer& c, const T& v,
- unique_associative_container_tag)
- {
- return c.insert(v);
- }
-
- template <class AssociativeContainer, class T>
- std::pair<typename AssociativeContainer::iterator, bool>
- push_dispatch(AssociativeContainer& c, const T& v,
- multiple_associative_container_tag)
- {
- return std::make_pair(c.insert(v), true);
- }
-
- template <class Container, class T>
- std::pair<typename Container::iterator,bool>
- push(Container& c, const T& v)
- {
- return push_dispatch(c, v, container_category(c));
- }
-
-}} // namespace boost::graph_detail
-
-#endif // BOOST_GRAPH_DETAIL_CONTAINER_TRAITS_H
+++ /dev/null
-// -*- C++ -*- forwarding header.
-// (C) Copyright Jeremy Siek 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)
-
-#ifndef BOOST_CSTDDEF_HPP
-#define BOOST_CSTDDEF_HPP
-
-#if defined(__sgi) && !defined(__GNUC__)
-# include <stddef.h>
-#else
-# include <cstddef>
-#endif
-
-#endif
+++ /dev/null
-// (C) Copyright Jeremy Siek 2000.
-// Distributed under the 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 ct_if implementation that avoids partial specialization is
-// based on the IF class by Ulrich W. Eisenecker and Krzysztof
-// Czarnecki.
-
-#ifndef BOOST_CT_IF_HPP
-#define BOOST_CT_IF_HPP
-
-#include <boost/config.hpp>
-
-/*
- There is a bug in the Borland compiler with regards to using
- integers to specialize templates. This made it hard to use ct_if in
- the graph library. Changing from 'ct_if' to 'ct_if_t' fixed the
- problem.
-*/
-
-#include <boost/type_traits/integral_constant.hpp> // true_type and false_type
-
-namespace boost {
-
- struct ct_if_error { };
-
- template <class A, class B>
- struct ct_and { typedef false_type type; };
- template <> struct ct_and<true_type,true_type> { typedef true_type type; };
-
- template <class A> struct ct_not { typedef ct_if_error type; };
- template <> struct ct_not<true_type> { typedef false_type type; };
- template <> struct ct_not<false_type> { typedef true_type type; };
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// agurt, 15/sep/02: in certain cases Borland has problems with
-// choosing the right 'ct_if' specialization even though 'cond'
-// _does_ equal '1'; the easiest way to fix it is to make first
-// 'ct_if' non-type template parameter boolean.
-#if !defined(__BORLANDC__)
- template <bool cond, class A, class B>
- struct ct_if { typedef ct_if_error type; };
- template <class A, class B>
- struct ct_if<true, A, B> { typedef A type; };
- template <class A, class B>
- struct ct_if<false, A, B> { typedef B type; };
-#else
- template <bool cond, class A, class B>
- struct ct_if { typedef A type; };
- template <class A, class B>
- struct ct_if<false, A, B> { typedef B type; };
-#endif
-
- template <class cond, class A, class B>
- struct ct_if_t { typedef ct_if_error type; };
- template <class A, class B>
- struct ct_if_t<true_type, A, B> { typedef A type; };
- template <class A, class B>
- struct ct_if_t<false_type, A, B> { typedef B type; };
-
-#else
-
- namespace detail {
-
- template <int condition, class A, class B> struct IF;
- template <int condition> struct SlectSelector;
- struct SelectFirstType;
- struct SelectSecondType;
-
- struct SelectFirstType {
- template<class A, class B>
- struct Template { typedef A type; };
- };
-
- struct SelectSecondType {
- template<class A, class B>
- struct Template { typedef B type; };
- };
-
- template<int condition>
- struct SlectSelector {
- typedef SelectFirstType type;
- };
-
- template <>
- struct SlectSelector<0> {
- typedef SelectSecondType type;
- };
-
- } // namespace detail
-
- template<int condition, class A, class B>
- struct ct_if
- {
- typedef typename detail::SlectSelector<condition>::type Selector;
- typedef typename Selector::template Template<A, B>::type type;
- };
-
- template <class cond, class A, class B>
- struct ct_if_t {
- typedef typename ct_if<cond::value, A, B>::type type;
- };
-
-#endif
-
-} // namespace boost
-
-#endif // BOOST_CT_IF_HPP
-
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-
-#ifndef BOOST_DETAIL_DISJOINT_SETS_HPP
-#define BOOST_DETAIL_DISJOINT_SETS_HPP
-
-namespace boost {
-
-namespace detail {
-
-template <class ParentPA, class Vertex>
-Vertex
-find_representative_with_path_halving(ParentPA p, Vertex v)
-{
- Vertex parent = get(p, v);
- Vertex grandparent = get(p, parent);
- while (parent != grandparent) {
- put(p, v, grandparent);
- v = grandparent;
- parent = get(p, v);
- grandparent = get(p, parent);
- }
- return parent;
-}
-
-template <class ParentPA, class Vertex>
-Vertex
-find_representative_with_full_compression(ParentPA parent, Vertex v)
-{
- Vertex old = v;
- Vertex ancestor = get(parent, v);
- while (ancestor != v) {
- v = ancestor;
- ancestor = get(parent, v);
- }
- v = get(parent, old);
- while (ancestor != v) {
- put(parent, old, ancestor);
- old = v;
- v = get(parent, old);
- }
- return ancestor;
-}
-
-/* the postcondition of link sets is:
- component_representative(i) == component_representative(j)
- */
-template <class ParentPA, class RankPA, class Vertex,
- class ComponentRepresentative>
-inline void
-link_sets(ParentPA p, RankPA rank, Vertex i, Vertex j,
- ComponentRepresentative comp_rep)
-{
- i = comp_rep(p, i);
- j = comp_rep(p, j);
- if (i == j) return;
- if (get(rank, i) > get(rank, j))
- put(p, j, i);
- else {
- put(p, i, j);
- if (get(rank, i) == get(rank, j))
- put(rank, j, get(rank, j) + 1);
- }
-}
-
-// normalize components has the following postcondidition:
-// i >= p[i]
-// that is, the representative is the node with the smallest index in its class
-// as its precondition it it assumes that the node container is compressed
-
-template <class ParentPA, class Vertex>
-inline void
-normalize_node(ParentPA p, Vertex i)
-{
- if (i > get(p,i) || get(p, get(p,i)) != get(p,i))
- put(p,i, get(p, get(p,i)));
- else {
- put(p, get(p,i), i);
- put(p, i, i);
- }
-}
-
- } // namespace detail
-} // namespace boost
-
-#endif // BOOST_DETAIL_DISJOINT_SETS_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 1999.
-// Distributed under the 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_INT_ITERATOR_H
-#define BOOST_INT_ITERATOR_H
-
-#include <boost/iterator.hpp>
-#if !defined BOOST_MSVC
-#include <boost/operators.hpp>
-#endif
-#include <iostream>
-//using namespace std;
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-namespace boost {
-#endif
-
-// this should use random_access_iterator_helper but I've had
-// VC++ portablility problems with that. -JGS
-template <class IntT>
-class int_iterator
-{
- typedef int_iterator self;
-public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef IntT value_type;
- typedef IntT& reference;
- typedef IntT* pointer;
- typedef std::ptrdiff_t difference_type;
-
- inline int_iterator() : _i(0) { }
- inline int_iterator(IntT i) : _i(i) { }
- inline int_iterator(const self& x) : _i(x._i) { }
- inline self& operator=(const self& x) { _i = x._i; return *this; }
- inline IntT operator*() { return _i; }
- inline IntT operator[](IntT n) { return _i + n; }
- inline self& operator++() { ++_i; return *this; }
- inline self operator++(int) { self t = *this; ++_i; return t; }
- inline self& operator+=(IntT n) { _i += n; return *this; }
- inline self operator+(IntT n) { self t = *this; t += n; return t; }
- inline self& operator--() { --_i; return *this; }
- inline self operator--(int) { self t = *this; --_i; return t; }
- inline self& operator-=(IntT n) { _i -= n; return *this; }
- inline IntT operator-(const self& x) const { return _i - x._i; }
- inline bool operator==(const self& x) const { return _i == x._i; }
- // vc++ had a problem finding != in random_access_iterator_helper
- // need to look into this... for now implementing everything here -JGS
- inline bool operator!=(const self& x) const { return _i != x._i; }
- inline bool operator<(const self& x) const { return _i < x._i; }
- inline bool operator<=(const self& x) const { return _i <= x._i; }
- inline bool operator>(const self& x) const { return _i > x._i; }
- inline bool operator>=(const self& x) const { return _i >= x._i; }
-protected:
- IntT _i;
-};
-
-template <class IntT>
-inline int_iterator<IntT>
-operator+(IntT n, int_iterator<IntT> t) { t += n; return t; }
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-} /* namespace boost */
-#endif
-
-#ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
-namespace boost {
- using ::int_iterator;
-}
-#endif
-
-
-#endif /* BOOST_INT_ITERATOR_H */
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-
-#ifndef BOOST_DETAIL_PROPERTY_HPP
-#define BOOST_DETAIL_PROPERTY_HPP
-
-#include <utility> // for std::pair
-#include <boost/type_traits/same_traits.hpp> // for is_same
-
-namespace boost {
-
- namespace detail {
-
- template <class PropertyTag1, class PropertyTag2>
- struct same_property {
- enum { value = is_same<PropertyTag1,PropertyTag2>::value };
- };
-
- struct error_property_not_found { };
-
- template <int TagMatched>
- struct property_value_dispatch {
- template <class PropertyTag, class T, class Tag>
- inline static T& get_value(PropertyTag& p, T*, Tag) {
- return p.m_value;
- }
- template <class PropertyTag, class T, class Tag>
- inline static const T& const_get_value(const PropertyTag& p, T*, Tag) {
- return p.m_value;
- }
- };
-
- template <class PropertyList>
- struct property_value_end {
- template <class T> struct result { typedef T type; };
-
- template <class T, class Tag>
- inline static T& get_value(PropertyList& p, T* t, Tag tag) {
- typedef typename PropertyList::next_type Next;
- typedef typename Next::tag_type Next_tag;
- enum { match = same_property<Next_tag,Tag>::value };
- return property_value_dispatch<match>
- ::get_value(static_cast<Next&>(p), t, tag);
- }
- template <class T, class Tag>
- inline static const T& const_get_value(const PropertyList& p, T* t, Tag tag) {
- typedef typename PropertyList::next_type Next;
- typedef typename Next::tag_type Next_tag;
- enum { match = same_property<Next_tag,Tag>::value };
- return property_value_dispatch<match>
- ::const_get_value(static_cast<const Next&>(p), t, tag);
- }
- };
- template <>
- struct property_value_end<no_property> {
- template <class T> struct result {
- typedef detail::error_property_not_found type;
- };
-
- // Stop the recursion and return error
- template <class T, class Tag>
- inline static detail::error_property_not_found&
- get_value(no_property&, T*, Tag) {
- static error_property_not_found s_prop_not_found;
- return s_prop_not_found;
- }
- template <class T, class Tag>
- inline static const detail::error_property_not_found&
- const_get_value(const no_property&, T*, Tag) {
- static error_property_not_found s_prop_not_found;
- return s_prop_not_found;
- }
- };
-
- template <>
- struct property_value_dispatch<0> {
- template <class PropertyList, class T, class Tag>
- inline static typename property_value_end<PropertyList>::template result<T>::type&
- get_value(PropertyList& p, T* t, Tag tag) {
- return property_value_end<PropertyList>::get_value(p, t, tag);
- }
- template <class PropertyList, class T, class Tag>
- inline static const typename property_value_end<PropertyList>::template result<T>::type&
- const_get_value(const PropertyList& p, T* t, Tag tag) {
- return property_value_end<PropertyList>::const_get_value(p, t, tag);
- }
- };
-
- template <class PropertyList>
- struct build_property_tag_value_alist
- {
- typedef typename PropertyList::next_type NextProperty;
- typedef typename PropertyList::value_type Value;
- typedef typename PropertyList::tag_type Tag;
- typedef typename build_property_tag_value_alist<NextProperty>::type Next;
- typedef std::pair< std::pair<Tag,Value>, Next> type;
- };
- template <>
- struct build_property_tag_value_alist<no_property>
- {
- typedef no_property type;
- };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class TagValueAList, class Tag>
- struct extract_value {
- typedef error_property_not_found type;
- };
- template <class Value, class Tag1, class Tag2, class Rest>
- struct extract_value< std::pair<std::pair<Tag1,Value>,Rest>, Tag2> {
- typedef typename extract_value<Rest,Tag2>::type type;
- };
- template <class Value, class Tag, class Rest>
- struct extract_value< std::pair<std::pair<Tag,Value>,Rest>, Tag> {
- typedef Value type;
- };
-#else
- // VC++ workaround:
- // The main idea here is to replace partial specialization with
- // nested template member classes. Of course there is the
- // further complication that the outer class of the nested
- // template class cannot itself be a template class.
- // Hence the need for the ev_selector. -JGS
-
- struct recursive_extract;
- struct end_extract;
-
- template <class TagValueAList>
- struct ev_selector { typedef recursive_extract type; };
- template <>
- struct ev_selector<no_property> { typedef end_extract type; };
-
- struct recursive_extract {
- template <class TagValueAList, class Tag1>
- struct bind_ {
- typedef typename TagValueAList::first_type AListFirst;
- typedef typename AListFirst::first_type Tag2;
- typedef typename AListFirst::second_type Value;
- enum { match = same_property<Tag1,Tag2>::value };
- typedef typename TagValueAList::second_type Next;
- typedef typename ev_selector<Next>::type Extractor;
- typedef typename boost::ct_if< match, Value,
- typename Extractor::template bind_<Next,Tag1>::type
- >::type type;
- };
- };
- struct end_extract {
- template <class AList, class Tag1>
- struct bind_ {
- typedef error_property_not_found type;
- };
- };
-#endif //!defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- } // namespace detail
-} // namespace boost
-
-#endif // BOOST_DETAIL_PROPERTY_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_DISJOINT_SETS_HPP
-#define BOOST_DISJOINT_SETS_HPP
-
-#include <vector>
-#include <boost/graph/properties.hpp>
-#include <boost/pending/detail/disjoint_sets.hpp>
-
-namespace boost {
-
- struct find_with_path_halving {
- template <class ParentPA, class Vertex>
- Vertex operator()(ParentPA p, Vertex v) {
- return detail::find_representative_with_path_halving(p, v);
- }
- };
-
- struct find_with_full_path_compression {
- template <class ParentPA, class Vertex>
- Vertex operator()(ParentPA p, Vertex v){
- return detail::find_representative_with_full_compression(p, v);
- }
- };
-
- // This is a generalized functor to provide disjoint sets operations
- // with "union by rank" and "path compression". A disjoint-set data
- // structure maintains a collection S={S1, S2, ..., Sk} of disjoint
- // sets. Each set is identified by a representative, which is some
- // member of of the set. Sets are represented by rooted trees. Two
- // heuristics: "union by rank" and "path compression" are used to
- // speed up the operations.
-
- // Disjoint Set requires two vertex properties for internal use. A
- // RankPA and a ParentPA. The RankPA must map Vertex to some Integral type
- // (preferably the size_type associated with Vertex). The ParentPA
- // must map Vertex to Vertex.
- template <class RankPA, class ParentPA,
- class FindCompress = find_with_full_path_compression
- >
- class disjoint_sets {
- typedef disjoint_sets self;
-
- inline disjoint_sets() {}
- public:
- inline disjoint_sets(RankPA r, ParentPA p)
- : rank(r), parent(p) {}
-
- inline disjoint_sets(const self& c)
- : rank(c.rank), parent(c.parent) {}
-
- // Make Set -- Create a singleton set containing vertex x
- template <class Element>
- inline void make_set(Element x)
- {
- put(parent, x, x);
- typedef typename property_traits<RankPA>::value_type R;
- put(rank, x, R());
- }
-
- // Link - union the two sets represented by vertex x and y
- template <class Element>
- inline void link(Element x, Element y)
- {
- detail::link_sets(parent, rank, x, y, rep);
- }
-
- // Union-Set - union the two sets containing vertex x and y
- template <class Element>
- inline void union_set(Element x, Element y)
- {
- link(find_set(x), find_set(y));
- }
-
- // Find-Set - returns the Element representative of the set
- // containing Element x and applies path compression.
- template <class Element>
- inline Element find_set(Element x)
- {
- return rep(parent, x);
- }
-
- template <class ElementIterator>
- inline std::size_t count_sets(ElementIterator first, ElementIterator last)
- {
- std::size_t count = 0;
- for ( ; first != last; ++first)
- if (get(parent, *first) == *first)
- ++count;
- return count;
- }
-
- template <class ElementIterator>
- inline void normalize_sets(ElementIterator first, ElementIterator last)
- {
- for (; first != last; ++first)
- detail::normalize_node(parent, *first);
- }
-
- template <class ElementIterator>
- inline void compress_sets(ElementIterator first, ElementIterator last)
- {
- for (; first != last; ++first)
- detail::find_representative_with_full_compression(parent, *first);
- }
- protected:
- RankPA rank;
- ParentPA parent;
- FindCompress rep;
- };
-
-
-
-
- template <class ID = identity_property_map,
- class InverseID = identity_property_map,
- class FindCompress = find_with_full_path_compression
- >
- class disjoint_sets_with_storage
- {
- typedef typename property_traits<ID>::value_type Index;
- typedef std::vector<Index> ParentContainer;
- typedef std::vector<unsigned char> RankContainer;
- public:
- typedef typename ParentContainer::size_type size_type;
-
- disjoint_sets_with_storage(size_type n = 0,
- ID id_ = ID(),
- InverseID inv = InverseID())
- : id(id_), id_to_vertex(inv), rank(n, 0), parent(n)
- {
- for (Index i = 0; i < n; ++i)
- parent[i] = i;
- }
- // note this is not normally needed
- template <class Element>
- inline void
- make_set(Element x) {
- parent[x] = x;
- rank[x] = 0;
- }
- template <class Element>
- inline void
- link(Element x, Element y)
- {
- extend_sets(x,y);
- detail::link_sets(&parent[0], &rank[0],
- get(id,x), get(id,y), rep);
- }
- template <class Element>
- inline void
- union_set(Element x, Element y) {
- Element rx = find_set(x);
- Element ry = find_set(y);
- link(rx, ry);
- }
- template <class Element>
- inline Element find_set(Element x) {
- return id_to_vertex[rep(&parent[0], get(id,x))];
- }
-
- template <class ElementIterator>
- inline std::size_t count_sets(ElementIterator first, ElementIterator last)
- {
- std::size_t count = 0;
- for ( ; first != last; ++first)
- if (parent[*first] == *first)
- ++count;
- return count;
- }
-
- template <class ElementIterator>
- inline void normalize_sets(ElementIterator first, ElementIterator last)
- {
- for (; first != last; ++first)
- detail::normalize_node(&parent[0], *first);
- }
-
- template <class ElementIterator>
- inline void compress_sets(ElementIterator first, ElementIterator last)
- {
- for (; first != last; ++first)
- detail::find_representative_with_full_compression(&parent[0],
- *first);
- }
-
- const ParentContainer& parents() { return parent; }
-
- protected:
-
- template <class Element>
- inline void
- extend_sets(Element x, Element y)
- {
- Index needed = get(id,x) > get(id,y) ? get(id,x) + 1 : get(id,y) + 1;
- if (needed > parent.size()) {
- rank.insert(rank.end(), needed - rank.size(), 0);
- for (Index k = parent.size(); k < needed; ++k)
- parent.push_back(k);
- }
- }
-
- ID id;
- InverseID id_to_vertex;
- RankContainer rank;
- ParentContainer parent;
- FindCompress rep;
- };
-
-} // namespace boost
-
-#endif // BOOST_DISJOINT_SETS_HPP
+++ /dev/null
-// (C) Copyright Jeremiah Willcock 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)
-
-#ifndef BOOST_FENCED_PRIORITY_QUEUE_HPP
-#define BOOST_FENCED_PRIORITY_QUEUE_HPP
-
-#include <vector>
-#include <queue>
-#include <functional>
-#include <boost/pending/queue.hpp>
-
-// Fenced priority queue
-// Jeremiah Willcock
-
-// This class implements a fenced priority queue. This is similar to
-// a normal priority queue (sorts its members, and only returns the
-// first), except that members cannot be sorted around a "fence" that
-// can be placed into the buffer. This fence is inserted using the
-// fence() member function or (possibly) implicitly by the top() and
-// pop() methods, and is removed automatically when the elements
-// around it are popped.
-
-// The implementation is as follows: Q is an unsorted queue that
-// contains the already-sorted list data, and PQ is a priority queue
-// that contains new elements (since the last fence) that have yet to
-// be sorted. New elements are inserted into PQ, and a fence moves
-// all elements in PQ into the back of Q in sorted order. Elements
-// are then popped from the front of Q, and if that is empty the front
-// of PQ.
-
-namespace boost {
-
- template<class T, class Compare = std::less<T>, bool implicit_fence = true,
- class Buffer = boost::queue<T> >
- class fenced_priority_queue {
- public:
- typedef T value_type;
- typedef typename Buffer::size_type size_type;
-
- fenced_priority_queue(const Compare _comp = Compare() )
- : PQ(_comp) {}
-
- void push(const T& data);
- void pop(void);
- T& top(void);
- const T& top(void) const;
- size_type size(void) const;
- bool empty(void) const;
- void fence(void);
-
- private:
- void fence(void) const;
-
- //let them mutable to allow const version of top and the same
- //semantics with non-constant version. Rich Lee
- mutable std::priority_queue<T, std::vector<T>, Compare> PQ;
- mutable Buffer Q;
- };
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline void
- fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- push(const T &t) {
- // Push a new element after the last fence. This puts it into the
- // priority queue to be sorted with all other elements in its
- // partition.
- PQ.push(t);
- }
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline void fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- pop(void) {
- // Pop one element from the front of the queue. Removes from the
- // already-sorted part of the queue if it is non-empty, otherwise
- // removes from the new-element priority queue. Runs an implicit
- // "fence" operation if the implicit_fence template argument is
- // true.
- if (implicit_fence) fence();
- if ( !Q.empty() )
- Q.pop();
- else
- PQ.pop();
- }
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline T& fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- top(void) {
- // Get the top element from the queue. This element comes from Q if
- // possible, otherwise from PQ. Causes an implicit "fence"
- // operation if the implicit_fence template argument is true.
- if (implicit_fence) fence();
- if ( !Q.empty() )
- return Q.top();
- else
- //std::priority_queue only have const version of top. Rich Lee
- return const_cast<T&>(PQ.top());
- }
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline const T&
- fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- top(void) const {
- if (implicit_fence) fence();
- if ( !Q.empty() )
- return Q.top();
- else
- return PQ.top();
- }
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline typename fenced_priority_queue<T, Compare, implicit_fence, Buffer>::size_type
- fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- size(void) const {
- // Returns the size of the queue (both parts together).
- return Q.size() + PQ.size();
- }
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline bool
- fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- empty(void) const {
- // Returns if the queue is empty, i.e. both parts are empty.
- return Q.empty() && PQ.empty();
- }
-
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline void
- fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- fence(void) {
- // Perform a fence operation. Remove elements from PQ in sorted
- // order and insert them in the back of Q.
- while ( !PQ.empty() ) {
- Q.push(PQ.top());
- PQ.pop();
- }
- }
- template<class T, class Compare, bool implicit_fence, class Buffer>
- inline void
- fenced_priority_queue<T, Compare, implicit_fence, Buffer>::
- fence(void) const {
- // Perform a fence operation. Remove elements from PQ in sorted
- // order and insert them in the back of Q.
- while ( !PQ.empty() ) {
- Q.push(PQ.top());
- PQ.pop();
- }
- }
-
-}
-#endif /* BOOST_FENCED_PRIORITY_QUEUE_HPP */
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-#ifndef BOOST_FIBONACCI_HEAP_HPP
-#define BOOST_FIBONACCI_HEAP_HPP
-
-#if defined(__sgi) && !defined(__GNUC__)
-# include <math.h>
-#else
-# include <cmath>
-#endif
-#include <iosfwd>
-#include <vector>
-#include <functional>
-#include <boost/config.hpp>
-#include <boost/property_map.hpp>
-
-//
-// An adaptation of Knuth's Fibonacci heap implementation
-// in "The Stanford Graph Base", pages 475-482.
-//
-
-namespace boost {
-
-
-template <class T,
- class Compare = std::less<T>,
- class ID = identity_property_map>
-class fibonacci_heap
-{
- typedef typename boost::property_traits<ID>::value_type size_type;
- typedef T value_type;
-protected:
- typedef fibonacci_heap self;
- typedef std::vector<size_type> LinkVec;
- typedef typename LinkVec::iterator LinkIter;
-public:
-
- fibonacci_heap(size_type n,
- const Compare& cmp,
- const ID& id = identity_property_map())
- : _key(n), _left(n), _right(n), _p(n), _mark(n), _degree(n),
- _n(0), _root(n), _id(id), _compare(cmp), _child(n),
-#if defined(BOOST_MSVC) || defined(__ICL) // need a new macro?
- new_roots(size_type(log(float(n))) + 5) { }
-#else
- new_roots(size_type(std::log(float(n))) + 5) { }
-#endif
-
- // 33
- void push(const T& d) {
- ++_n;
- size_type v = get(_id, d);
- _key[v] = d;
- _p[v] = nil();
- _degree[v] = 0;
- _mark[v] = false;
- _child[v] = nil();
- if (_root == nil()) {
- _root = _left[v] = _right[v] = v;
- //std::cout << "root added" << std::endl;
- } else {
- size_type u = _left[_root];
- _left[v] = u;
- _right[v] = _root;
- _left[_root] = _right[u] = v;
- if (_compare(d, _key[_root]))
- _root = v;
- //std::cout << "non-root node added" << std::endl;
- }
- }
- T& top() { return _key[_root]; }
- const T& top() const { return _key[_root]; }
-
- // 38
- void pop() {
- --_n;
- int h = -1;
- size_type v, w;
- if (_root != nil()) {
- if (_degree[_root] == 0) {
- v = _right[_root];
- } else {
- w = _child[_root];
- v = _right[w];
- _right[w] = _right[_root];
- for (w = v; w != _right[_root]; w = _right[w])
- _p[w] = nil();
- }
- while (v != _root) {
- w = _right[v];
- add_tree_to_new_roots(v, new_roots.begin(), h);
- v = w;
- }
- rebuild_root_list(new_roots.begin(), h);
- }
- }
- // 39
- inline void add_tree_to_new_roots(size_type v,
- LinkIter new_roots,
- int& h)
- {
- int r;
- size_type u;
- r = _degree[v];
- while (1) {
- if (h < r) {
- do {
- ++h;
- new_roots[h] = (h == r ? v : nil());
- } while (h < r);
- break;
- }
- if (new_roots[r] == nil()) {
- new_roots[r] = v;
- break;
- }
- u = new_roots[r];
- new_roots[r] = nil();
- if (_compare(_key[u], _key[v])) {
- _degree[v] = r;
- std::swap(u, v);
- }
- make_child(u, v, r);
- ++r;
- }
- _degree[v] = r;
- }
- // 40
- void make_child(size_type u, size_type v, size_type r) {
- if (r == 0) {
- _child[v] = u;
- _left[u] = u;
- _right[u] = u;
- } else {
- size_type t = _child[v];
- _right[u] = _right[t];
- _left[u] = t;
- _right[t] = u;
- _left[_right[u]] = u;
- }
- }
- // 41
- inline void rebuild_root_list(LinkIter new_roots, int& h)
- {
- size_type u, v, w;
- if (h < 0)
- _root = nil();
- else {
- T d;
- u = v = new_roots[h];
- d = _key[u];
- _root = u;
- for (h--; h >= 0; --h)
- if (new_roots[h] != nil()) {
- w = new_roots[h];
- _left[w] = v;
- _right[v] = w;
- if (_compare(_key[w], d)) {
- _root = w;
- d = _key[w];
- }
- v = w;
- }
- _right[v] = u;
- _left[u] = v;
- }
- }
-
- // 34
- void update(const T& d) {
- size_type v = get(_id, d);
- assert(!_compare(_key[v], d));
- _key[v] = d;
- size_type p = _p[v];
- if (p == nil()) {
- if (_compare(d, _key[_root]))
- _root = v;
- } else if (_compare(d, _key[_root]))
- while (1) {
- size_type r = _degree[p];
- if (r >= 2)
- remove_from_family(v, p);
- insert_into_forest(v, d);
- size_type pp = _p[p];
- if (pp == nil()) {
- --_degree[p];
- break;
- }
- if (_mark[p] == false) {
- _mark[p] = true;
- break;
- } else
- --_degree[p];
- v = p;
- p = pp;
- }
- }
-
- inline size_type size() const { return _n; }
- inline bool empty() const { return _n == 0; }
-
- void print(std::ostream& os) {
- if (_root != nil()) {
- size_type i = _root;
- do {
- print_recur(i, os);
- os << std::endl;
- i = _right[i];
- } while (i != _root);
- }
- }
-
-protected:
- // 35
- inline void remove_from_family(size_type v, size_type p) {
- size_type u = _left[v];
- size_type w = _right[v];
- _right[u] = w;
- _left[w] = u;
- if (_child[p] == v)
- _child[p] = w;
- }
- // 36
- inline void insert_into_forest(size_type v, const T& d) {
- _p[v] = nil();
- size_type u = _left[_root];
- _left[v] = u;
- _right[v] = _root;
- _left[_root] = _right[u] = v;
- if (_compare(d, _key[_root]))
- _root = v;
- }
-
- void print_recur(size_type x, std::ostream& os) {
- if (x != nil()) {
- os << x;
- if (_child[x] != nil()) {
- os << "(";
- size_type i = _child[x];
- do {
- print_recur(i, os); os << " ";
- i = _right[i];
- } while (i != _child[x]);
- os << ")";
- }
- }
- }
-
- size_type nil() const { return _left.size(); }
-
- std::vector<T> _key;
- LinkVec _left, _right, _p;
- std::vector<bool> _mark;
- LinkVec _degree;
- size_type _n, _root;
- ID _id;
- Compare _compare;
- LinkVec _child;
- LinkVec new_roots;
-};
-
-} // namespace boost
-
-
-#endif // BOOST_FIBONACCI_HEAP_HPP
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_INDIRECT_CMP_HPP
-#define BOOST_INDIRECT_CMP_HPP
-
-#include <functional>
-#include <boost/config.hpp>
-#include <boost/property_map.hpp>
-
-namespace boost {
-
- //: indirect_cmp
- //
- // could also do this with compose_f_gx_hx, and the member binder...
- //
- //!category: functors
- //!component: type
- //!tparam: ReadablePropertyMap - a model of ReadablePropertyMap
- //!definition: functor.h
- template <class ReadablePropertyMap, class Compare>
- class indirect_cmp {
- public:
- typedef typename boost::property_traits<ReadablePropertyMap>::value_type T;
- typedef typename boost::property_traits<ReadablePropertyMap>::key_type K;
- typedef K first_argument_type;
- typedef K second_argument_type;
- typedef T result_type;
- inline indirect_cmp(const ReadablePropertyMap& df, const Compare& c = Compare())
- : d(df), cmp(c) { }
-
- template <class A, class B>
- inline bool
- operator()(const A& u, const B& v) const {
- T du = get(d, u), dv = get(d, v);
- return cmp(du, dv);
- }
- protected:
- ReadablePropertyMap d;
- Compare cmp;
- };
-
- template <typename Compare, typename ReadablePropertyMap>
- indirect_cmp<ReadablePropertyMap, Compare>
- make_indirect_cmp(const Compare& cmp, ReadablePropertyMap pmap) {
- indirect_cmp<ReadablePropertyMap, Compare> p(pmap, cmp);
- return p;
- }
-
- template <class ReadablePropertyMap>
- class indirect_pmap {
- public:
- typedef typename boost::property_traits<ReadablePropertyMap>::value_type T;
- typedef typename boost::property_traits<ReadablePropertyMap>::key_type K;
- typedef K argument_type;
- typedef T result_type;
- inline indirect_pmap(const ReadablePropertyMap& df)
- : d(df) { }
-
- inline bool operator()(const K& u) const {
- return get(d, u);
- }
- protected:
- ReadablePropertyMap d;
- };
-
- template <typename ReadablePropertyMap>
- indirect_pmap<ReadablePropertyMap>
- make_indirect_pmap(ReadablePropertyMap pmap) {
- indirect_pmap<ReadablePropertyMap> f(pmap);
- return f;
- }
-
-
-} // namespace boost
-
-
-#endif // GGCL_INDIRECT_CMP_HPP
+++ /dev/null
-// -------------------------------------
-// integer_log2.hpp
-//
-// Gives the integer part of the logarithm, in base 2, of a
-// given number. Behavior is undefined if the argument is <= 0.
-//
-//
-// (C) Copyright Gennaro Prota 2003 - 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)
-//
-// ------------------------------------------------------
-
-
-
-#ifndef BOOST_INTEGER_LOG2_HPP_GP_20030301
-#define BOOST_INTEGER_LOG2_HPP_GP_20030301
-
-#include <cassert>
-#include <climits> // actually used for Borland only
-#include "boost/limits.hpp"
-#include "boost/config.hpp"
-
-
-namespace boost {
- namespace detail {
-
- template <typename T>
- int integer_log2_impl(T x, int n) {
-
- int result = 0;
-
- while (x != 1) {
-
- const T t = x >> n;
- if (t) {
- result += n;
- x = t;
- }
- n /= 2;
-
- }
-
- return result;
- }
-
-
-
- // helper to find the maximum power of two
- // less than p (more involved than necessary,
- // to avoid PTS)
- //
- template <int p, int n>
- struct max_pow2_less {
-
- enum { c = 2*n < p };
-
- BOOST_STATIC_CONSTANT(int, value =
- c ? (max_pow2_less< c*p, 2*c*n>::value) : n);
-
- };
-
- template <>
- struct max_pow2_less<0, 0> {
-
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-
- // this template is here just for Borland :(
- // we could simply rely on numeric_limits but sometimes
- // Borland tries to use numeric_limits<const T>, because
- // of its usual const-related problems in argument deduction
- // - gps
- template <typename T>
- struct width {
-
-#ifdef __BORLANDC__
- BOOST_STATIC_CONSTANT(int, value = sizeof(T) * CHAR_BIT);
-#else
- BOOST_STATIC_CONSTANT(int, value = (std::numeric_limits<T>::digits));
-#endif
-
- };
-
- } // detail
-
-
- // ---------
- // integer_log2
- // ---------------
- //
- template <typename T>
- int integer_log2(T x) {
-
- assert(x > 0);
-
- const int n = detail::max_pow2_less<
- detail::width<T> :: value, 4
- > :: value;
-
- return detail::integer_log2_impl(x, n);
-
- }
-
-
-
-}
-
-
-
-#endif // include guard
+++ /dev/null
-// (C) Copyright David Abrahams and Jeremy Siek 2000-2001.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Revision History:
-// 04 Jan 2001 Factored counting_iterator stuff into
-// boost/counting_iterator.hpp (David Abrahams)
-
-#ifndef BOOST_INTEGER_RANGE_HPP_
-#define BOOST_INTEGER_RANGE_HPP_
-
-#include <boost/config.hpp>
-#include <boost/iterator/counting_iterator.hpp>
-#include <algorithm>
-
-namespace boost {
-
-//=============================================================================
-// Counting Iterator and Integer Range Class
-
-template <class IntegerType>
-struct integer_range {
- typedef counting_iterator<IntegerType> iterator;
-
- typedef iterator const_iterator;
- typedef IntegerType value_type;
- typedef std::ptrdiff_t difference_type;
- typedef IntegerType reference;
- typedef IntegerType const_reference;
- typedef const IntegerType* pointer;
- typedef const IntegerType* const_pointer;
- typedef IntegerType size_type;
-
- integer_range(IntegerType start, IntegerType finish)
- : m_start(start), m_finish(finish) { }
-
- iterator begin() const { return iterator(m_start); }
- iterator end() const { return iterator(m_finish); }
- size_type size() const { return m_finish - m_start; }
- bool empty() const { return m_finish == m_start; }
- void swap(integer_range& x) {
- std::swap(m_start, x.m_start);
- std::swap(m_finish, x.m_finish);
- }
-protected:
- IntegerType m_start, m_finish;
-};
-
-template <class IntegerType>
-inline integer_range<IntegerType>
-make_integer_range(IntegerType first, IntegerType last)
-{
- return integer_range<IntegerType>(first, last);
-}
-
-} // namespace boost
-
-#endif // BOOST_INTEGER_RANGE_HPP_
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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 __KCC
-namespace std {
-
-template <class RandomAccessIterator, class Distance>
-bool __is_heap(RandomAccessIterator first, RandomAccessIterator last,
- Distance*)
-{
- const Distance n = last - first;
-
- Distance parent = 0;
- for (Distance child = 1; child < n; ++child) {
- if (first[parent] < first[child])
- return false;
- if ((child & 1) == 0)
- ++parent;
- }
- return true;
-}
-
-template <class RandomAccessIterator>
-inline bool is_heap(RandomAccessIterator first, RandomAccessIterator last)
-{
- return __is_heap(first, last, distance_type(first));
-}
-
-
-template <class RandomAccessIterator, class Distance, class StrictWeakOrdering>
-bool __is_heap(RandomAccessIterator first, RandomAccessIterator last,
- StrictWeakOrdering comp,
- Distance*)
-{
- const Distance n = last - first;
-
- Distance parent = 0;
- for (Distance child = 1; child < n; ++child) {
- if (comp(first[parent], first[child]))
- return false;
- if ((child & 1) == 0)
- ++parent;
- }
- return true;
-}
-
-template <class RandomAccessIterator, class StrictWeakOrdering>
-inline bool is_heap(RandomAccessIterator first, RandomAccessIterator last,
- StrictWeakOrdering comp)
-{
- return __is_heap(first, last, comp, distance_type(first));
-}
-
-}
-#endif
+++ /dev/null
-// 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)
-
-#include <boost/iterator_adaptors.hpp>
+++ /dev/null
-// Copyright David Abrahams and Jeremy Siek 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_ITERATOR_TESTS_HPP
-# define BOOST_ITERATOR_TESTS_HPP
-
-// This is meant to be the beginnings of a comprehensive, generic
-// test suite for STL concepts such as iterators and containers.
-//
-// Revision History:
-// 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 <assert.h>
-# include <boost/type_traits.hpp>
-# include <boost/static_assert.hpp>
-# include <boost/concept_archetype.hpp> // for detail::dummy_constructor
-# include <boost/implicit_cast.hpp>
-# include <boost/type_traits/broken_compiler_spec.hpp>
-
-namespace boost {
-
- // use this for the value type
-struct dummyT {
- dummyT() { }
- dummyT(detail::dummy_constructor) { }
- dummyT(int x) : m_x(x) { }
- int foo() const { return m_x; }
- bool operator==(const dummyT& d) const { return m_x == d.m_x; }
- int m_x;
-};
-
-}
-
-BOOST_TT_BROKEN_COMPILER_SPEC(boost::dummyT)
-
-namespace boost {
-
-// Tests whether type Iterator satisfies the requirements for a
-// TrivialIterator.
-// Preconditions: i != j, *i == val
-template <class Iterator, class T>
-void trivial_iterator_test(const Iterator i, const Iterator j, T val)
-{
- Iterator k;
- assert(i == i);
- assert(j == j);
- assert(i != j);
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- T v = *i;
-#else
- typename std::iterator_traits<Iterator>::value_type v = *i;
-#endif
- assert(v == val);
-#if 0
- // hmm, this will give a warning for transform_iterator... perhaps
- // this should be separated out into a stand-alone test since there
- // are several situations where it can't be used, like for
- // integer_range::iterator.
- assert(v == i->foo());
-#endif
- k = i;
- assert(k == k);
- assert(k == i);
- assert(k != j);
- assert(*k == val);
-}
-
-
-// Preconditions: i != j
-template <class Iterator, class T>
-void mutable_trivial_iterator_test(const Iterator i, const Iterator j, T val)
-{
- *i = val;
- trivial_iterator_test(i, j, val);
-}
-
-
-// Preconditions: *i == v1, *++i == v2
-template <class Iterator, class T>
-void input_iterator_test(Iterator i, T v1, T v2)
-{
- Iterator i1(i);
-
- assert(i == i1);
- assert(!(i != i1));
-
- // I can see no generic way to create an input iterator
- // that is in the domain of== of i and != i.
- // The following works for istream_iterator but is not
- // guaranteed to work for arbitrary input iterators.
- //
- // Iterator i2;
- //
- // assert(i != i2);
- // assert(!(i == i2));
-
- assert(*i1 == v1);
- assert(*i == v1);
-
- // we cannot test for equivalence of (void)++i & (void)i++
- // as i is only guaranteed to be single pass.
- assert(*i++ == v1);
-
- i1 = i;
-
- assert(i == i1);
- assert(!(i != i1));
-
- assert(*i1 == v2);
- assert(*i == v2);
-
- // i is dereferencable, so it must be incrementable.
- ++i;
-
- // how to test for operator-> ?
-}
-
-// how to test output iterator?
-
-
-template <bool is_pointer> struct lvalue_test
-{
- template <class Iterator> static void check(Iterator)
- {
-# ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typedef typename std::iterator_traits<Iterator>::reference reference;
- typedef typename std::iterator_traits<Iterator>::value_type value_type;
-# else
- typedef typename Iterator::reference reference;
- typedef typename Iterator::value_type value_type;
-# endif
- BOOST_STATIC_ASSERT(boost::is_reference<reference>::value);
- BOOST_STATIC_ASSERT((boost::is_same<reference,value_type&>::value
- || boost::is_same<reference,const value_type&>::value
- ));
- }
-};
-
-# ifdef BOOST_NO_STD_ITERATOR_TRAITS
-template <> struct lvalue_test<true> {
- template <class T> static void check(T) {}
-};
-#endif
-
-template <class Iterator, class T>
-void forward_iterator_test(Iterator i, T v1, T v2)
-{
- input_iterator_test(i, v1, v2);
-
- Iterator i1 = i, i2 = i;
-
- assert(i == i1++);
- assert(i != ++i2);
-
- trivial_iterator_test(i, i1, v1);
- trivial_iterator_test(i, i2, v1);
-
- ++i;
- assert(i == i1);
- assert(i == i2);
- ++i1;
- ++i2;
-
- trivial_iterator_test(i, i1, v2);
- trivial_iterator_test(i, i2, v2);
-
- // borland doesn't allow non-type template parameters
-# if !defined(__BORLANDC__) || (__BORLANDC__ > 0x551)
- lvalue_test<(boost::is_pointer<Iterator>::value)>::check(i);
-#endif
-}
-
-// Preconditions: *i == v1, *++i == v2
-template <class Iterator, class T>
-void bidirectional_iterator_test(Iterator i, T v1, T v2)
-{
- forward_iterator_test(i, v1, v2);
- ++i;
-
- Iterator i1 = i, i2 = i;
-
- assert(i == i1--);
- assert(i != --i2);
-
- trivial_iterator_test(i, i1, v2);
- trivial_iterator_test(i, i2, v2);
-
- --i;
- assert(i == i1);
- assert(i == i2);
- ++i1;
- ++i2;
-
- trivial_iterator_test(i, i1, v1);
- trivial_iterator_test(i, i2, v1);
-}
-
-// mutable_bidirectional_iterator_test
-
-template <class U> struct undefined;
-
-// Preconditions: [i,i+N) is a valid range
-template <class Iterator, class TrueVals>
-void random_access_iterator_test(Iterator i, int N, TrueVals vals)
-{
- bidirectional_iterator_test(i, vals[0], vals[1]);
- const Iterator j = i;
- int c;
-
- typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;
-
- for (c = 0; c < N-1; ++c) {
- assert(i == j + c);
- assert(*i == vals[c]);
- assert(*i == boost::implicit_cast<value_type>(j[c]));
- assert(*i == *(j + c));
- assert(*i == *(c + j));
- ++i;
- assert(i > j);
- assert(i >= j);
- assert(j <= i);
- assert(j < i);
- }
-
- Iterator k = j + N - 1;
- for (c = 0; c < N-1; ++c) {
- assert(i == k - c);
- assert(*i == vals[N - 1 - c]);
- assert(*i == boost::implicit_cast<value_type>(j[N - 1 - c]));
- Iterator q = k - c;
- assert(*i == *q);
- assert(i > j);
- assert(i >= j);
- assert(j <= i);
- assert(j < i);
- --i;
- }
-}
-
-// Precondition: i != j
-template <class Iterator, class ConstIterator>
-void const_nonconst_iterator_test(Iterator i, ConstIterator j)
-{
- assert(i != j);
- assert(j != i);
-
- ConstIterator k(i);
- assert(k == i);
- assert(i == k);
-
- k = i;
- assert(k == i);
- assert(i == k);
-}
-
-} // namespace boost
-
-#endif // BOOST_ITERATOR_TESTS_HPP
+++ /dev/null
-// -------------------------------------
-// lowest_bit.hpp
-//
-// Position of the lowest bit 'on'
-//
-// (C) Copyright Gennaro Prota 2003 - 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)
-//
-// ------------------------------------------------------
-
-#ifndef BOOST_LOWEST_BIT_HPP_GP_20030301
-#define BOOST_LOWEST_BIT_HPP_GP_20030301
-
-#include <cassert>
-#include "boost/pending/integer_log2.hpp"
-
-
-namespace boost {
-
- template <typename T>
- int lowest_bit(T x) {
-
- assert(x >= 1); // PRE
-
- // clear all bits on except the rightmost one,
- // then calculate the logarithm base 2
- //
- return boost::integer_log2<T>( x - ( x & (x-1) ) );
-
- }
-
-
-}
-
-
-#endif // include guard
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_GRAPH_DETAIL_MUTABLE_HEAP_H
-#define BOOST_GRAPH_DETAIL_MUTABLE_HEAP_H
-
-/*
- There are a few things wrong with this set of functions.
-
- ExternalData should be removed, it is not part of the core
- algorithm. It can be handled inside the tree nodes.
-
- The swap() should be replaced by assignment since its use is causing
- the number of memory references to double.
-
- The min_element should be replaced by a fixed length loop
- (fixed at d for d-heaps).
-
- The member functions of TreeNode should be changed to global
- functions.
-
- These functions will be replaced by those in heap_tree.h
-
- */
-
-namespace boost {
-
- template <class TreeNode, class Compare, class ExternalData>
- inline TreeNode up_heap(TreeNode x, const Compare& comp, ExternalData& edata) {
- while (x.has_parent() && comp(x, x.parent()))
- x.swap(x.parent(), edata);
- return x;
- }
-
- template <class TreeNode, class Compare, class ExternalData>
- inline TreeNode down_heap(TreeNode x, const Compare& comp, ExternalData& edata) {
- while (x.children().size() > 0) {
- typename TreeNode::children_type::iterator
- child_iter = std::min_element(x.children().begin(),
- x.children().end(),
- comp);
- if (comp(*child_iter, x))
- x.swap(*child_iter, edata);
- else
- break;
- }
- return x;
- }
-
- template <class TreeNode, class Compare, class ExternalData>
- inline void update_heap(TreeNode x, const Compare& comp, ExternalData& edata) {
- x = down_heap(x, comp, edata);
- (void)up_heap(x, comp, edata);
- }
-
-}
-#endif
+++ /dev/null
-//
-//=======================================================================
-// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
-// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
-//
-// Distributed under the 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_MUTABLE_QUEUE_HPP
-#define BOOST_MUTABLE_QUEUE_HPP
-
-#include <vector>
-#include <algorithm>
-#include <functional>
-#include <boost/property_map.hpp>
-#include <boost/pending/mutable_heap.hpp>
-#include <boost/pending/is_heap.hpp>
-#include <boost/graph/detail/array_binary_tree.hpp>
-#include <iterator>
-
-namespace boost {
-
- // The mutable queue whose elements are indexed
- //
- // This adaptor provides a special kind of priority queue that has
- // and update operation. This allows the ordering of the items to
- // change. After the ordering criteria for item x changes, one must
- // call the Q.update(x)
- //
- // In order to efficiently find x in the queue, a functor must be
- // provided to map value_type to a unique ID, which the
- // mutable_queue will then use to map to the location of the
- // item. The ID's generated must be between 0 and N, where N is the
- // value passed to the constructor of mutable_queue
-
- template <class IndexedType,
- class RandomAccessContainer = std::vector<IndexedType>,
- class Comp = std::less<typename RandomAccessContainer::value_type>,
- class ID = identity_property_map >
- class mutable_queue {
- public:
- typedef IndexedType value_type;
- typedef typename RandomAccessContainer::size_type size_type;
- protected:
- typedef typename RandomAccessContainer::iterator iterator;
-#if !defined BOOST_NO_STD_ITERATOR_TRAITS
- typedef adstl::array_binary_tree_node<iterator, ID> Node;
-#else
- typedef adstl::array_binary_tree_node<iterator, value_type, ID> Node;
-#endif
- typedef adstl::compare_array_node<RandomAccessContainer,Comp> Compare;
- typedef std::vector<size_type> IndexArray;
- public:
- typedef Compare value_compare;
- typedef ID id_generator;
-
- mutable_queue(size_type n, const Comp& x, const ID& _id)
- : index_array(n), comp(x), id(_id) {
- c.reserve(n);
- }
- template <class ForwardIterator>
- mutable_queue(ForwardIterator first, ForwardIterator last,
- const Comp& x, const ID& _id)
- : index_array(std::distance(first, last)), comp(x), id(_id)
- {
- while( first != last ) {
- push(*first);
- ++first;
- }
- }
-
- bool empty() const { return c.empty(); }
-
- void pop() {
- value_type tmp = c.back();
- c.back() = c.front();
- c.front() = tmp;
-
- size_type id_f = get(id, c.back());
- size_type id_b = get(id, tmp);
- size_type i = index_array[ id_b ];
- index_array[ id_b ] = index_array[ id_f ];
- index_array[ id_f ] = i;
-
- c.pop_back();
- Node node(c.begin(), c.end(), c.begin(), id);
- down_heap(node, comp, index_array);
- }
- void push(const IndexedType& x) {
- c.push_back(x);
- /*set index-array*/
- index_array[ get(id, x) ] = c.size()-1;
- Node node(c.begin(), c.end(), c.end() - 1, id);
- up_heap(node, comp, index_array);
- }
-
- void update(const IndexedType& x) {
- size_type current_pos = index_array[ get(id, x) ];
- c[current_pos] = x;
-
- Node node(c.begin(), c.end(), c.begin()+current_pos, id);
- update_heap(node, comp, index_array);
- }
-
- value_type& front() { return c.front(); }
- value_type& top() { return c.front(); }
-
- const value_type& front() const { return c.front(); }
- const value_type& top() const { return c.front(); }
-
- size_type size() const { return c.size(); }
-
- void clear() { c.clear(); }
-
-#if 0
- // dwa 2003/7/11 - I don't know what compiler is supposed to
- // be able to compile this, but is_heap is not standard!!
- bool test() {
- return std::is_heap(c.begin(), c.end(), Comp());
- }
-#endif
-
- protected:
- IndexArray index_array;
- Compare comp;
- RandomAccessContainer c;
- ID id;
- };
-
-
-}
-
-#endif // BOOST_MUTABLE_QUEUE_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-
-#ifndef BOOST_PROPERTY_HPP
-#define BOOST_PROPERTY_HPP
-
-#include <boost/pending/ct_if.hpp>
-
-namespace boost {
-
- struct no_property {
- typedef no_property tag_type;
- typedef no_property next_type;
- typedef no_property value_type;
- enum { num = 0 };
- typedef void kind;
- };
- template <class Tag, class T, class Base = no_property>
- struct property : public Base {
- typedef Base next_type;
- typedef Tag tag_type;
- typedef T value_type;
- property() { }
- property(const T& v) : m_value(v) { }
- property(const T& v, const Base& b) : Base(b), m_value(v) { }
- // copy constructor and assignment operator will be generated by compiler
- T m_value;
- };
-
- // The BGL properties specialize property_kind and
- // property_num, and use enum's for the Property type (see
- // graph/properties.hpp), but the user may want to use a class
- // instead with a nested kind type and num. Also, we may want to
- // switch BGL back to using class types for properties at some point.
-
- template <class PropertyTag>
- struct property_kind {
- typedef typename PropertyTag::kind type;
- };
-
- template <class P>
- struct has_property {
- BOOST_STATIC_CONSTANT(bool, value = true);
- typedef true_type type;
- };
- template <>
- struct has_property<no_property> {
- BOOST_STATIC_CONSTANT(bool, value = false);
- typedef false_type type;
- };
-
-} // namespace boost
-
-#include <boost/pending/detail/property.hpp>
-
-namespace boost {
-
- template <class PropertyList, class Tag>
- struct property_value {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typedef typename detail::build_property_tag_value_alist<PropertyList>::type AList;
- typedef typename detail::extract_value<AList,Tag>::type type;
-#else
- typedef typename detail::build_property_tag_value_alist<PropertyList>::type AList;
- typedef typename detail::ev_selector<AList>::type Extractor;
- typedef typename Extractor::template bind_<AList,Tag>::type type;
-#endif
- };
-
- template <class Tag1, class Tag2, class T1, class Base>
- inline typename property_value<property<Tag1,T1,Base>, Tag2>::type&
- get_property_value(property<Tag1,T1,Base>& p, Tag2 tag2) {
- BOOST_STATIC_CONSTANT(bool,
- match = (detail::same_property<Tag1,Tag2>::value));
- typedef property<Tag1,T1,Base> Prop;
- typedef typename property_value<Prop, Tag2>::type T2;
- T2* t2 = 0;
- typedef detail::property_value_dispatch<match> Dispatcher;
- return Dispatcher::get_value(p, t2, tag2);
- }
- template <class Tag1, class Tag2, class T1, class Base>
- inline
- const typename property_value<property<Tag1,T1,Base>, Tag2>::type&
- get_property_value(const property<Tag1,T1,Base>& p, Tag2 tag2) {
- BOOST_STATIC_CONSTANT(bool,
- match = (detail::same_property<Tag1,Tag2>::value));
- typedef property<Tag1,T1,Base> Prop;
- typedef typename property_value<Prop, Tag2>::type T2;
- T2* t2 = 0;
- typedef detail::property_value_dispatch<match> Dispatcher;
- return Dispatcher::const_get_value(p, t2, tag2);
- }
-
- namespace detail {
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- template<typename FinalTag, typename FinalType>
- struct retag_property_list
- {
- typedef property<FinalTag, FinalType> type;
- typedef FinalType retagged;
- };
-
- template<typename FinalTag, typename Tag, typename T, typename Base>
- struct retag_property_list<FinalTag, property<Tag, T, Base> >
- {
- private:
- typedef retag_property_list<FinalTag, Base> next;
-
- public:
- typedef property<Tag, T, typename next::type> type;
- typedef typename next::retagged retagged;
- };
-
- template<typename FinalTag>
- struct retag_property_list<FinalTag, no_property>
- {
- typedef no_property type;
- typedef no_property retagged;
- };
-#endif
- }
-} // namesapce boost
-
-#endif /* BOOST_PROPERTY_HPP */
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-
-#ifndef BOOST_QUEUE_HPP
-#define BOOST_QUEUE_HPP
-
-#include <deque>
-#include <algorithm>
-
-namespace boost {
-
-template <class _Tp,
- class _Sequence = std::deque<_Tp> >
-class queue;
-
-template <class _Tp, class _Seq>
-inline bool operator==(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
-
-template <class _Tp, class _Seq>
-inline bool operator<(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
-
-
-template <class _Tp, class _Sequence>
-class queue {
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- template <class _Tp1, class _Seq1>
- friend bool operator== (const queue<_Tp1, _Seq1>&,
- const queue<_Tp1, _Seq1>&);
- template <class _Tp1, class _Seq1>
- friend bool operator< (const queue<_Tp1, _Seq1>&,
- const queue<_Tp1, _Seq1>&);
-#endif
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-protected:
-#endif
- _Sequence c;
-public:
- queue() : c() {}
- explicit queue(const _Sequence& __c) : c(__c) {}
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- reference front() { return c.front(); }
- const_reference front() const { return c.front(); }
- reference top() { return c.front(); }
- const_reference top() const { return c.front(); }
- reference back() { return c.back(); }
- const_reference back() const { return c.back(); }
- void push(const value_type& __x) { c.push_back(__x); }
- void pop() { c.pop_front(); }
-
- void swap(queue& other)
- {
- using std::swap;
- swap(c, other.c);
- }
-};
-
-template <class _Tp, class _Sequence>
-bool
-operator==(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return __x.c == __y.c;
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator<(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return __x.c < __y.c;
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator!=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator>(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return __y < __x;
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator<=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return !(__y < __x);
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator>=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return !(__x < __y);
-}
-
-template <class _Tp, class _Sequence>
-inline void
-swap(queue<_Tp, _Sequence>& __x, queue<_Tp, _Sequence>& __y)
-{ __x.swap(__y); }
-
-} /* namespace boost */
-
-#endif /* BOOST_QUEUE_HPP */
+++ /dev/null
-// Copyright 2004 The Trustees of Indiana University.
-
-// 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)
-
-// Authors: Douglas Gregor
-// Andrew Lumsdaine
-#ifndef BOOST_RELAXED_HEAP_HEADER
-#define BOOST_RELAXED_HEAP_HEADER
-
-#include <functional>
-#include <boost/property_map.hpp>
-#include <boost/optional.hpp>
-#include <vector>
-
-#ifdef BOOST_RELAXED_HEAP_DEBUG
-# include <iostream>
-#endif // BOOST_RELAXED_HEAP_DEBUG
-
-#if defined(BOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable:4355) // complaint about using 'this' to
-#endif // initialize a member
-
-namespace boost {
-
-template<typename IndexedType,
- typename Compare = std::less<IndexedType>,
- typename ID = identity_property_map>
-class relaxed_heap
-{
- struct group;
-
- typedef relaxed_heap self_type;
- typedef std::size_t rank_type;
-
-public:
- typedef IndexedType value_type;
- typedef rank_type size_type;
-
-private:
- /**
- * The kind of key that a group has. The actual values are discussed
- * in-depth in the documentation of the @c kind field of the @c group
- * structure. Note that the order of the enumerators *IS* important
- * and must not be changed.
- */
- enum group_key_kind { smallest_key, stored_key, largest_key };
-
- struct group {
- explicit group(group_key_kind kind = largest_key)
- : kind(kind), parent(this), rank(0) { }
-
- /** The value associated with this group. This value is only valid
- * when @c kind!=largest_key (which indicates a deleted
- * element). Note that the use of boost::optional increases the
- * memory requirements slightly but does not result in extraneous
- * memory allocations or deallocations. The optional could be
- * eliminated when @c value_type is a model of
- * DefaultConstructible.
- */
- ::boost::optional<value_type> value;
-
- /**
- * The kind of key stored at this group. This may be @c
- * smallest_key, which indicates that the key is infinitely small;
- * @c largest_key, which indicates that the key is infinitely
- * large; or @c stored_key, which means that the key is unknown,
- * but its relationship to other keys can be determined via the
- * comparison function object.
- */
- group_key_kind kind;
-
- /// The parent of this group. Will only be NULL for the dummy root group
- group* parent;
-
- /// The rank of this group. Equivalent to the number of children in
- /// the group.
- rank_type rank;
-
- /** The children of this group. For the dummy root group, these are
- * the roots. This is an array of length log n containing pointers
- * to the child groups.
- */
- group** children;
- };
-
- size_type log2(size_type n)
- {
- size_type leading_zeroes = 0;
- do {
- size_type next = n << 1;
- if (n == (next >> 1)) {
- ++leading_zeroes;
- n = next;
- } else {
- break;
- }
- } while (true);
- return sizeof(size_type) * CHAR_BIT - leading_zeroes - 1;
- }
-
-public:
- relaxed_heap(size_type n, const Compare& compare = Compare(),
- const ID& id = ID())
- : compare(compare), id(id), root(smallest_key), groups(n),
- smallest_value(0)
- {
- if (n == 0) {
- root.children = new group*[1];
- return;
- }
-
- log_n = log2(n);
-
- if (log_n == 0) log_n = 1;
- size_type g = n / log_n;
- if (n % log_n > 0) ++g;
- size_type log_g = log2(g);
- size_type r = log_g;
-
- // Reserve an appropriate amount of space for data structures, so
- // that we do not need to expand them.
- index_to_group.resize(g);
- A.resize(r + 1, 0);
- root.rank = r + 1;
- root.children = new group*[(log_g + 1) * (g + 1)];
- for (rank_type i = 0; i < r+1; ++i) root.children[i] = 0;
-
- // Build initial heap
- size_type idx = 0;
- while (idx < g) {
- root.children[r] = &index_to_group[idx];
- idx = build_tree(root, idx, r, log_g + 1);
- if (idx != g)
- r = static_cast<size_type>(log2(g-idx));
- }
- }
-
- ~relaxed_heap() { delete [] root.children; }
-
- void push(const value_type& x)
- {
- groups[get(id, x)] = x;
- update(x);
- }
-
- void update(const value_type& x)
- {
- group* a = &index_to_group[get(id, x) / log_n];
- if (!a->value
- || *a->value == x
- || compare(x, *a->value)) {
- if (a != smallest_value) smallest_value = 0;
- a->kind = stored_key;
- a->value = x;
- promote(a);
- }
- }
-
- void remove(const value_type& x)
- {
- group* a = &index_to_group[get(id, x) / log_n];
- assert(groups[get(id, x)] != 0);
- a->value = x;
- a->kind = smallest_key;
- promote(a);
- smallest_value = a;
- pop();
- }
-
- value_type& top()
- {
- find_smallest();
- assert(smallest_value->value != 0);
- return *smallest_value->value;
- }
-
- const value_type& top() const
- {
- find_smallest();
- assert(smallest_value->value != 0);
- return *smallest_value->value;
- }
-
- bool empty() const
- {
- find_smallest();
- return !smallest_value || (smallest_value->kind == largest_key);
- }
-
- bool contains(const value_type& x) const { return groups[get(id, x)]; }
-
- void pop()
- {
- // Fill in smallest_value. This is the group x.
- find_smallest();
- group* x = smallest_value;
- smallest_value = 0;
-
- // Make x a leaf, giving it the smallest value within its group
- rank_type r = x->rank;
- group* p = x->parent;
- {
- assert(x->value != 0);
-
- // Find x's group
- size_type start = get(id, *x->value) - get(id, *x->value) % log_n;
- size_type end = start + log_n;
- if (end > groups.size()) end = groups.size();
-
- // Remove the smallest value from the group, and find the new
- // smallest value.
- groups[get(id, *x->value)].reset();
- x->value.reset();
- x->kind = largest_key;
- for (size_type i = start; i < end; ++i) {
- if (groups[i] && (!x->value || compare(*groups[i], *x->value))) {
- x->kind = stored_key;
- x->value = groups[i];
- }
- }
- }
- x->rank = 0;
-
- // Combine prior children of x with x
- group* y = x;
- for (size_type c = 0; c < r; ++c) {
- group* child = x->children[c];
- if (A[c] == child) A[c] = 0;
- y = combine(y, child);
- }
-
- // If we got back something other than x, let y take x's place
- if (y != x) {
- y->parent = p;
- p->children[r] = y;
-
- assert(r == y->rank);
- if (A[y->rank] == x)
- A[y->rank] = do_compare(y, p)? y : 0;
- }
- }
-
-#ifdef BOOST_RELAXED_HEAP_DEBUG
- /*************************************************************************
- * Debugging support *
- *************************************************************************/
- void dump_tree() { dump_tree(std::cout); }
- void dump_tree(std::ostream& out) { dump_tree(out, &root); }
-
- void dump_tree(std::ostream& out, group* p, bool in_progress = false)
- {
- if (!in_progress) {
- out << "digraph heap {\n"
- << " edge[dir=\"back\"];\n";
- }
-
- size_type p_index = 0;
- if (p != &root) while (&index_to_group[p_index] != p) ++p_index;
-
- for (size_type i = 0; i < p->rank; ++i) {
- group* c = p->children[i];
- if (c) {
- size_type c_index = 0;
- if (c != &root) while (&index_to_group[c_index] != c) ++c_index;
-
- out << " ";
- if (p == &root) out << 'p'; else out << p_index;
- out << " -> ";
- if (c == &root) out << 'p'; else out << c_index;
- if (A[c->rank] == c) out << " [style=\"dotted\"]";
- out << ";\n";
- dump_tree(out, c, true);
-
- // Emit node information
- out << " ";
- if (c == &root) out << 'p'; else out << c_index;
- out << " [label=\"";
- if (c == &root) out << 'p'; else out << c_index;
- out << ":";
- size_type start = c_index * log_n;
- size_type end = start + log_n;
- if (end > groups.size()) end = groups.size();
- while (start != end) {
- if (groups[start]) {
- out << " " << get(id, *groups[start]);
- if (*groups[start] == *c->value) out << "(*)";
- }
- ++start;
- }
- out << '"';
-
- if (do_compare(c, p)) {
- out << " ";
- if (c == &root) out << 'p'; else out << c_index;
- out << ", style=\"filled\", fillcolor=\"gray\"";
- }
- out << "];\n";
- } else {
- assert(p->parent == p);
- }
- }
- if (!in_progress) out << "}\n";
- }
-
- bool valid()
- {
- // Check that the ranks in the A array match the ranks of the
- // groups stored there. Also, the active groups must be the last
- // child of their parent.
- for (size_type r = 0; r < A.size(); ++r) {
- if (A[r] && A[r]->rank != r) return false;
-
- if (A[r] && A[r]->parent->children[A[r]->parent->rank-1] != A[r])
- return false;
- }
-
- // The root must have no value and a key of -Infinity
- if (root.kind != smallest_key) return false;
-
- return valid(&root);
- }
-
- bool valid(group* p)
- {
- for (size_type i = 0; i < p->rank; ++i) {
- group* c = p->children[i];
- if (c) {
- // Check link structure
- if (c->parent != p) return false;
- if (c->rank != i) return false;
-
- // A bad group must be active
- if (do_compare(c, p) && A[i] != c) return false;
-
- // Check recursively
- if (!valid(c)) return false;
- } else {
- // Only the root may
- if (p != &root) return false;
- }
- }
- return true;
- }
-
-#endif // BOOST_RELAXED_HEAP_DEBUG
-
-private:
- size_type
- build_tree(group& parent, size_type idx, size_type r, size_type max_rank)
- {
- group& this_group = index_to_group[idx];
- this_group.parent = &parent;
- ++idx;
-
- this_group.children = root.children + (idx * max_rank);
- this_group.rank = r;
- for (size_type i = 0; i < r; ++i) {
- this_group.children[i] = &index_to_group[idx];
- idx = build_tree(this_group, idx, i, max_rank);
- }
- return idx;
- }
-
- void find_smallest() const
- {
- group** roots = root.children;
-
- if (!smallest_value) {
- std::size_t i;
- for (i = 0; i < root.rank; ++i) {
- if (roots[i] &&
- (!smallest_value || do_compare(roots[i], smallest_value))) {
- smallest_value = roots[i];
- }
- }
- for (i = 0; i < A.size(); ++i) {
- if (A[i] && (!smallest_value || do_compare(A[i], smallest_value)))
- smallest_value = A[i];
- }
- }
- }
-
- bool do_compare(group* x, group* y) const
- {
- return (x->kind < y->kind
- || (x->kind == y->kind
- && x->kind == stored_key
- && compare(*x->value, *y->value)));
- }
-
- void promote(group* a)
- {
- assert(a != 0);
- rank_type r = a->rank;
- group* p = a->parent;
- assert(p != 0);
- if (do_compare(a, p)) {
- // s is the rank + 1 sibling
- group* s = p->rank > r + 1? p->children[r + 1] : 0;
-
- // If a is the last child of p
- if (r == p->rank - 1) {
- if (!A[r]) A[r] = a;
- else if (A[r] != a) pair_transform(a);
- } else {
- assert(s != 0);
- if (A[r + 1] == s) active_sibling_transform(a, s);
- else good_sibling_transform(a, s);
- }
- }
- }
-
- group* combine(group* a1, group* a2)
- {
- assert(a1->rank == a2->rank);
- if (do_compare(a2, a1)) do_swap(a1, a2);
- a1->children[a1->rank++] = a2;
- a2->parent = a1;
- clean(a1);
- return a1;
- }
-
- void clean(group* q)
- {
- if (2 > q->rank) return;
- group* qp = q->children[q->rank-1];
- rank_type s = q->rank - 2;
- group* x = q->children[s];
- group* xp = qp->children[s];
- assert(s == x->rank);
-
- // If x is active, swap x and xp
- if (A[s] == x) {
- q->children[s] = xp;
- xp->parent = q;
- qp->children[s] = x;
- x->parent = qp;
- }
- }
-
- void pair_transform(group* a)
- {
-#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1
- std::cerr << "- pair transform\n";
-#endif
- rank_type r = a->rank;
-
- // p is a's parent
- group* p = a->parent;
- assert(p != 0);
-
- // g is p's parent (a's grandparent)
- group* g = p->parent;
- assert(g != 0);
-
- // a' <- A(r)
- assert(A[r] != 0);
- group* ap = A[r];
- assert(ap != 0);
-
- // A(r) <- nil
- A[r] = 0;
-
- // let a' have parent p'
- group* pp = ap->parent;
- assert(pp != 0);
-
- // let a' have grandparent g'
- group* gp = pp->parent;
- assert(gp != 0);
-
- // Remove a and a' from their parents
- assert(ap == pp->children[pp->rank-1]); // Guaranteed because ap is active
- --pp->rank;
-
- // Guaranteed by caller
- assert(a == p->children[p->rank-1]);
- --p->rank;
-
- // Note: a, ap, p, pp all have rank r
- if (do_compare(pp, p)) {
- do_swap(a, ap);
- do_swap(p, pp);
- do_swap(g, gp);
- }
-
- // Assuming k(p) <= k(p')
- // make p' the rank r child of p
- assert(r == p->rank);
- p->children[p->rank++] = pp;
- pp->parent = p;
-
- // Combine a, ap into a rank r+1 group c
- group* c = combine(a, ap);
-
- // make c the rank r+1 child of g'
- assert(gp->rank > r+1);
- gp->children[r+1] = c;
- c->parent = gp;
-
-#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1
- std::cerr << "After pair transform...\n";
- dump_tree();
-#endif
-
- if (A[r+1] == pp) A[r+1] = c;
- else promote(c);
- }
-
- void active_sibling_transform(group* a, group* s)
- {
-#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1
- std::cerr << "- active sibling transform\n";
-#endif
- group* p = a->parent;
- group* g = p->parent;
-
- // remove a, s from their parents
- assert(s->parent == p);
- assert(p->children[p->rank-1] == s);
- --p->rank;
- assert(p->children[p->rank-1] == a);
- --p->rank;
-
- rank_type r = a->rank;
- A[r+1] = 0;
- a = combine(p, a);
- group* c = combine(a, s);
-
- // make c the rank r+2 child of g
- assert(g->children[r+2] == p);
- g->children[r+2] = c;
- c->parent = g;
- if (A[r+2] == p) A[r+2] = c;
- else promote(c);
- }
-
- void good_sibling_transform(group* a, group* s)
- {
-#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1
- std::cerr << "- good sibling transform\n";
-#endif
- rank_type r = a->rank;
- group* c = s->children[s->rank-1];
- assert(c->rank == r);
- if (A[r] == c) {
-#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1
- std::cerr << "- good sibling pair transform\n";
-#endif
- A[r] = 0;
- group* p = a->parent;
-
- // Remove c from its parent
- --s->rank;
-
- // Make s the rank r child of p
- s->parent = p;
- p->children[r] = s;
-
- // combine a, c and let the result by the rank r+1 child of p
- assert(p->rank > r+1);
- group* x = combine(a, c);
- x->parent = p;
- p->children[r+1] = x;
-
- if (A[r+1] == s) A[r+1] = x;
- else promote(x);
-
-#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1
- dump_tree(std::cerr);
-#endif
- // pair_transform(a);
- } else {
- // Clean operation
- group* p = a->parent;
- s->children[r] = a;
- a->parent = s;
- p->children[r] = c;
- c->parent = p;
-
- promote(a);
- }
- }
-
- static void do_swap(group*& x, group*& y)
- {
- group* tmp = x;
- x = y;
- y = tmp;
- }
-
- /// Function object that compares two values in the heap
- Compare compare;
-
- /// Mapping from values to indices in the range [0, n).
- ID id;
-
- /** The root group of the queue. This group is special because it will
- * never store a value, but it acts as a parent to all of the
- * roots. Thus, its list of children is the list of roots.
- */
- group root;
-
- /** Mapping from the group index of a value to the group associated
- * with that value. If a value is not in the queue, then the "value"
- * field will be empty.
- */
- std::vector<group> index_to_group;
-
- /** Flat data structure containing the values in each of the
- * groups. It will be indexed via the id of the values. The groups
- * are each log_n long, with the last group potentially being
- * smaller.
- */
- std::vector< ::boost::optional<value_type> > groups;
-
- /** The list of active groups, indexed by rank. When A[r] is null,
- * there is no active group of rank r. Otherwise, A[r] is the active
- * group of rank r.
- */
- std::vector<group*> A;
-
- /** The group containing the smallest value in the queue, which must
- * be either a root or an active group. If this group is null, then we
- * will need to search for this group when it is needed.
- */
- mutable group* smallest_value;
-
- /// Cached value log2(n)
- size_type log_n;
-};
-
-
-} // end namespace boost
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#endif // BOOST_RELAXED_HEAP_HEADER
+++ /dev/null
-// (C) Copyright Jeremy Siek 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)
-
-/*
- * stringtok.hpp -- Breaks a string into tokens. This is an example for lib3.
- *
- * Template function looks like this:
- *
- * template <typename Container>
- * void stringtok (Container &l,
- * string const &s,
- * char const * const ws = " \t\n");
- *
- * A nondestructive version of strtok() that handles its own memory and can
- * be broken up by any character(s). Does all the work at once rather than
- * in an invocation loop like strtok() requires.
- *
- * Container is any type that supports push_back(a_string), although using
- * list<string> and deque<string> are indicated due to their O(1) push_back.
- * (I prefer deque<> because op[]/at() is available as well.) The first
- * parameter references an existing Container.
- *
- * s is the string to be tokenized. From the parameter declaration, it can
- * be seen that s is not affected. Since references-to-const may refer to
- * temporaries, you could use stringtok(some_container, readline("")) when
- * using the GNU readline library.
- *
- * The final parameter is an array of characters that serve as whitespace.
- * Whitespace characters default to one or more of tab, space, and newline,
- * in any combination.
- *
- * 'l' need not be empty on entry. On return, 'l' will have the token
- * strings appended.
- *
- *
- * [Example:
- * list<string> ls;
- * stringtok (ls, " this \t is\t\n a test ");
- * for (list<string>::const_iterator i = ls.begin();
- * i != ls.end(); ++i)
- * {
- * cerr << ':' << (*i) << ":\n";
- * }
- *
- * would print
- * :this:
- * :is:
- * :a:
- * :test:
- * -end example]
- *
- * pedwards@jaj.com May 1999
-*/
-
-
-#include <string>
-#include <cstring> // for strchr
-
-
-/*****************************************************************
- * This is the only part of the implementation that I don't like.
- * It can probably be improved upon by the reader...
-*/
-namespace {
- inline bool
- isws (char c, char const * const wstr)
- {
- using namespace std;
- return (strchr(wstr,c) != NULL);
- }
-}
-
-namespace boost {
-
-/*****************************************************************
- * Simplistic and quite Standard, but a bit slow. This should be
- * templatized on basic_string instead, or on a more generic StringT
- * that just happens to support ::size_type, .substr(), and so on.
- * I had hoped that "whitespace" would be a trait, but it isn't, so
- * the user must supply it. Enh, this lets them break up strings on
- * different things easier than traits would anyhow.
-*/
-template <typename Container>
-void
-stringtok (Container &l, std::string const &s, char const * const ws = " \t\n")
-{
- typedef std::string::size_type size_type;
- const size_type S = s.size();
- size_type i = 0;
-
- while (i < S) {
- // eat leading whitespace
- while ((i < S) && (isws(s[i],ws))) ++i;
- if (i == S) return; // nothing left but WS
-
- // find end of word
- size_type j = i+1;
- while ((j < S) && (!isws(s[j],ws))) ++j;
-
- // add word
- l.push_back(s.substr(i,j-i));
-
- // set up for next loop
- i = j+1;
- }
-}
-
-
-} // namespace boost
+++ /dev/null
-#ifndef BOOST_PFTO_HPP
-#define BOOST_PFTO_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// pfto.hpp: workarounds for compilers which have problems supporting
-// Partial Function Template Ordering (PFTO).
-
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
-// 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 for updates, documentation, and revision history.
-// PFTO version is used to specify the last argument of certain functions
-// Function it is used to support compilers that fail to support correct Partial
-// Template Ordering
-#include <boost/config.hpp>
-
-// some compilers can use an exta argument and use function overloading
-// to choose desired function. This extra argument is long in the default
-// function implementation and int for the rest. The function is called
-// with an int argument. This first attempts to match functions with an
-// int argument before the default one (with a long argument). This is
-// known to function with VC 6.0. On other compilers this fails (Borland)
-// or causes other problems (GCC). note: this
-
-#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
- #define BOOST_PFTO long
-#else
- #define BOOST_PFTO
-#endif
-
-// here's another approach. Rather than use a default function - make sure
-// there is no default at all by requiring that all function invocations
-// have a "wrapped" argument type. This solves a problem with VC 6.0
-// (and perhaps others) while implementing templated constructors.
-
-namespace boost {
-
-template<class T>
-struct pfto_wrapper {
- const T & t;
- operator const T & (){
- return t;
- }
- pfto_wrapper (const T & rhs) : t(rhs) {}
-};
-
-template<class T>
-pfto_wrapper<T> make_pfto_wrapper(const T & t, BOOST_PFTO int){
- return pfto_wrapper<T>(t);
-}
-
-template<class T>
-pfto_wrapper<T> make_pfto_wrapper(const pfto_wrapper<T> & t, int){
- return t;
-}
-
-} // namespace boost
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
- #define BOOST_PFTO_WRAPPER(T) boost::pfto_wrapper<T>
- #define BOOST_MAKE_PFTO_WRAPPER(t) boost::make_pfto_wrapper(t, 0)
-#else
- #define BOOST_PFTO_WRAPPER(T) T
- #define BOOST_MAKE_PFTO_WRAPPER(t) t
-#endif
-
-#endif // BOOST_PFTO_HPP
+++ /dev/null
-#ifndef POINTEE_DWA200415_HPP
-# define POINTEE_DWA200415_HPP
-
-//
-// Copyright David Abrahams 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)
-//
-// typename pointee<P>::type provides the pointee type of P.
-//
-// For example, it is T for T* and X for shared_ptr<X>.
-//
-// http://www.boost.org/libs/iterator/doc/pointee.html
-//
-
-# include <boost/detail/is_incrementable.hpp>
-# include <boost/iterator/iterator_traits.hpp>
-# include <boost/type_traits/add_const.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/eval_if.hpp>
-
-namespace boost {
-
-namespace detail
-{
- template <class P>
- struct smart_ptr_pointee
- {
- typedef typename P::element_type type;
- };
-
- template <class Iterator>
- struct iterator_pointee
- {
- typedef typename iterator_traits<Iterator>::value_type value_type;
-
- struct impl
- {
- template <class T>
- static char test(T const&);
-
- static char (& test(value_type&) )[2];
-
- static Iterator& x;
- };
-
- BOOST_STATIC_CONSTANT(bool, is_constant = sizeof(impl::test(*impl::x)) == 1);
-
- typedef typename mpl::if_c<
-# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
- ::boost::detail::iterator_pointee<Iterator>::is_constant
-# else
- is_constant
-# endif
- , typename add_const<value_type>::type
- , value_type
- >::type type;
- };
-}
-
-template <class P>
-struct pointee
- : mpl::eval_if<
- detail::is_incrementable<P>
- , detail::iterator_pointee<P>
- , detail::smart_ptr_pointee<P>
- >
-{
-};
-
-} // namespace boost
-
-#endif // POINTEE_DWA200415_HPP
+++ /dev/null
-# /* 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/libs/preprocessor for documentation. */
-#
-# ifndef BOOST_PREPROCESSOR_HPP
-# define BOOST_PREPROCESSOR_HPP
-#
-# include <boost/preprocessor/library.hpp>
-#
-# endif
+++ /dev/null
-# /* 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_ADD_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_ADD */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_ADD(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# else
-# define BOOST_PP_ADD(x, y) BOOST_PP_ADD_I(x, y)
-# define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# endif
-#
-# define BOOST_PP_ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy
-# else
-# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
-# endif
-#
-# define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y))
-#
-# /* BOOST_PP_ADD_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# else
-# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y)
-# define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_DEC_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_DEC */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_DEC(x) BOOST_PP_DEC_I(x)
-# else
-# define BOOST_PP_DEC(x) BOOST_PP_DEC_OO((x))
-# define BOOST_PP_DEC_OO(par) BOOST_PP_DEC_I ## par
-# endif
-#
-# define BOOST_PP_DEC_I(x) BOOST_PP_DEC_ ## x
-#
-# define BOOST_PP_DEC_0 0
-# define BOOST_PP_DEC_1 0
-# define BOOST_PP_DEC_2 1
-# define BOOST_PP_DEC_3 2
-# define BOOST_PP_DEC_4 3
-# define BOOST_PP_DEC_5 4
-# define BOOST_PP_DEC_6 5
-# define BOOST_PP_DEC_7 6
-# define BOOST_PP_DEC_8 7
-# define BOOST_PP_DEC_9 8
-# define BOOST_PP_DEC_10 9
-# define BOOST_PP_DEC_11 10
-# define BOOST_PP_DEC_12 11
-# define BOOST_PP_DEC_13 12
-# define BOOST_PP_DEC_14 13
-# define BOOST_PP_DEC_15 14
-# define BOOST_PP_DEC_16 15
-# define BOOST_PP_DEC_17 16
-# define BOOST_PP_DEC_18 17
-# define BOOST_PP_DEC_19 18
-# define BOOST_PP_DEC_20 19
-# define BOOST_PP_DEC_21 20
-# define BOOST_PP_DEC_22 21
-# define BOOST_PP_DEC_23 22
-# define BOOST_PP_DEC_24 23
-# define BOOST_PP_DEC_25 24
-# define BOOST_PP_DEC_26 25
-# define BOOST_PP_DEC_27 26
-# define BOOST_PP_DEC_28 27
-# define BOOST_PP_DEC_29 28
-# define BOOST_PP_DEC_30 29
-# define BOOST_PP_DEC_31 30
-# define BOOST_PP_DEC_32 31
-# define BOOST_PP_DEC_33 32
-# define BOOST_PP_DEC_34 33
-# define BOOST_PP_DEC_35 34
-# define BOOST_PP_DEC_36 35
-# define BOOST_PP_DEC_37 36
-# define BOOST_PP_DEC_38 37
-# define BOOST_PP_DEC_39 38
-# define BOOST_PP_DEC_40 39
-# define BOOST_PP_DEC_41 40
-# define BOOST_PP_DEC_42 41
-# define BOOST_PP_DEC_43 42
-# define BOOST_PP_DEC_44 43
-# define BOOST_PP_DEC_45 44
-# define BOOST_PP_DEC_46 45
-# define BOOST_PP_DEC_47 46
-# define BOOST_PP_DEC_48 47
-# define BOOST_PP_DEC_49 48
-# define BOOST_PP_DEC_50 49
-# define BOOST_PP_DEC_51 50
-# define BOOST_PP_DEC_52 51
-# define BOOST_PP_DEC_53 52
-# define BOOST_PP_DEC_54 53
-# define BOOST_PP_DEC_55 54
-# define BOOST_PP_DEC_56 55
-# define BOOST_PP_DEC_57 56
-# define BOOST_PP_DEC_58 57
-# define BOOST_PP_DEC_59 58
-# define BOOST_PP_DEC_60 59
-# define BOOST_PP_DEC_61 60
-# define BOOST_PP_DEC_62 61
-# define BOOST_PP_DEC_63 62
-# define BOOST_PP_DEC_64 63
-# define BOOST_PP_DEC_65 64
-# define BOOST_PP_DEC_66 65
-# define BOOST_PP_DEC_67 66
-# define BOOST_PP_DEC_68 67
-# define BOOST_PP_DEC_69 68
-# define BOOST_PP_DEC_70 69
-# define BOOST_PP_DEC_71 70
-# define BOOST_PP_DEC_72 71
-# define BOOST_PP_DEC_73 72
-# define BOOST_PP_DEC_74 73
-# define BOOST_PP_DEC_75 74
-# define BOOST_PP_DEC_76 75
-# define BOOST_PP_DEC_77 76
-# define BOOST_PP_DEC_78 77
-# define BOOST_PP_DEC_79 78
-# define BOOST_PP_DEC_80 79
-# define BOOST_PP_DEC_81 80
-# define BOOST_PP_DEC_82 81
-# define BOOST_PP_DEC_83 82
-# define BOOST_PP_DEC_84 83
-# define BOOST_PP_DEC_85 84
-# define BOOST_PP_DEC_86 85
-# define BOOST_PP_DEC_87 86
-# define BOOST_PP_DEC_88 87
-# define BOOST_PP_DEC_89 88
-# define BOOST_PP_DEC_90 89
-# define BOOST_PP_DEC_91 90
-# define BOOST_PP_DEC_92 91
-# define BOOST_PP_DEC_93 92
-# define BOOST_PP_DEC_94 93
-# define BOOST_PP_DEC_95 94
-# define BOOST_PP_DEC_96 95
-# define BOOST_PP_DEC_97 96
-# define BOOST_PP_DEC_98 97
-# define BOOST_PP_DEC_99 98
-# define BOOST_PP_DEC_100 99
-# define BOOST_PP_DEC_101 100
-# define BOOST_PP_DEC_102 101
-# define BOOST_PP_DEC_103 102
-# define BOOST_PP_DEC_104 103
-# define BOOST_PP_DEC_105 104
-# define BOOST_PP_DEC_106 105
-# define BOOST_PP_DEC_107 106
-# define BOOST_PP_DEC_108 107
-# define BOOST_PP_DEC_109 108
-# define BOOST_PP_DEC_110 109
-# define BOOST_PP_DEC_111 110
-# define BOOST_PP_DEC_112 111
-# define BOOST_PP_DEC_113 112
-# define BOOST_PP_DEC_114 113
-# define BOOST_PP_DEC_115 114
-# define BOOST_PP_DEC_116 115
-# define BOOST_PP_DEC_117 116
-# define BOOST_PP_DEC_118 117
-# define BOOST_PP_DEC_119 118
-# define BOOST_PP_DEC_120 119
-# define BOOST_PP_DEC_121 120
-# define BOOST_PP_DEC_122 121
-# define BOOST_PP_DEC_123 122
-# define BOOST_PP_DEC_124 123
-# define BOOST_PP_DEC_125 124
-# define BOOST_PP_DEC_126 125
-# define BOOST_PP_DEC_127 126
-# define BOOST_PP_DEC_128 127
-# define BOOST_PP_DEC_129 128
-# define BOOST_PP_DEC_130 129
-# define BOOST_PP_DEC_131 130
-# define BOOST_PP_DEC_132 131
-# define BOOST_PP_DEC_133 132
-# define BOOST_PP_DEC_134 133
-# define BOOST_PP_DEC_135 134
-# define BOOST_PP_DEC_136 135
-# define BOOST_PP_DEC_137 136
-# define BOOST_PP_DEC_138 137
-# define BOOST_PP_DEC_139 138
-# define BOOST_PP_DEC_140 139
-# define BOOST_PP_DEC_141 140
-# define BOOST_PP_DEC_142 141
-# define BOOST_PP_DEC_143 142
-# define BOOST_PP_DEC_144 143
-# define BOOST_PP_DEC_145 144
-# define BOOST_PP_DEC_146 145
-# define BOOST_PP_DEC_147 146
-# define BOOST_PP_DEC_148 147
-# define BOOST_PP_DEC_149 148
-# define BOOST_PP_DEC_150 149
-# define BOOST_PP_DEC_151 150
-# define BOOST_PP_DEC_152 151
-# define BOOST_PP_DEC_153 152
-# define BOOST_PP_DEC_154 153
-# define BOOST_PP_DEC_155 154
-# define BOOST_PP_DEC_156 155
-# define BOOST_PP_DEC_157 156
-# define BOOST_PP_DEC_158 157
-# define BOOST_PP_DEC_159 158
-# define BOOST_PP_DEC_160 159
-# define BOOST_PP_DEC_161 160
-# define BOOST_PP_DEC_162 161
-# define BOOST_PP_DEC_163 162
-# define BOOST_PP_DEC_164 163
-# define BOOST_PP_DEC_165 164
-# define BOOST_PP_DEC_166 165
-# define BOOST_PP_DEC_167 166
-# define BOOST_PP_DEC_168 167
-# define BOOST_PP_DEC_169 168
-# define BOOST_PP_DEC_170 169
-# define BOOST_PP_DEC_171 170
-# define BOOST_PP_DEC_172 171
-# define BOOST_PP_DEC_173 172
-# define BOOST_PP_DEC_174 173
-# define BOOST_PP_DEC_175 174
-# define BOOST_PP_DEC_176 175
-# define BOOST_PP_DEC_177 176
-# define BOOST_PP_DEC_178 177
-# define BOOST_PP_DEC_179 178
-# define BOOST_PP_DEC_180 179
-# define BOOST_PP_DEC_181 180
-# define BOOST_PP_DEC_182 181
-# define BOOST_PP_DEC_183 182
-# define BOOST_PP_DEC_184 183
-# define BOOST_PP_DEC_185 184
-# define BOOST_PP_DEC_186 185
-# define BOOST_PP_DEC_187 186
-# define BOOST_PP_DEC_188 187
-# define BOOST_PP_DEC_189 188
-# define BOOST_PP_DEC_190 189
-# define BOOST_PP_DEC_191 190
-# define BOOST_PP_DEC_192 191
-# define BOOST_PP_DEC_193 192
-# define BOOST_PP_DEC_194 193
-# define BOOST_PP_DEC_195 194
-# define BOOST_PP_DEC_196 195
-# define BOOST_PP_DEC_197 196
-# define BOOST_PP_DEC_198 197
-# define BOOST_PP_DEC_199 198
-# define BOOST_PP_DEC_200 199
-# define BOOST_PP_DEC_201 200
-# define BOOST_PP_DEC_202 201
-# define BOOST_PP_DEC_203 202
-# define BOOST_PP_DEC_204 203
-# define BOOST_PP_DEC_205 204
-# define BOOST_PP_DEC_206 205
-# define BOOST_PP_DEC_207 206
-# define BOOST_PP_DEC_208 207
-# define BOOST_PP_DEC_209 208
-# define BOOST_PP_DEC_210 209
-# define BOOST_PP_DEC_211 210
-# define BOOST_PP_DEC_212 211
-# define BOOST_PP_DEC_213 212
-# define BOOST_PP_DEC_214 213
-# define BOOST_PP_DEC_215 214
-# define BOOST_PP_DEC_216 215
-# define BOOST_PP_DEC_217 216
-# define BOOST_PP_DEC_218 217
-# define BOOST_PP_DEC_219 218
-# define BOOST_PP_DEC_220 219
-# define BOOST_PP_DEC_221 220
-# define BOOST_PP_DEC_222 221
-# define BOOST_PP_DEC_223 222
-# define BOOST_PP_DEC_224 223
-# define BOOST_PP_DEC_225 224
-# define BOOST_PP_DEC_226 225
-# define BOOST_PP_DEC_227 226
-# define BOOST_PP_DEC_228 227
-# define BOOST_PP_DEC_229 228
-# define BOOST_PP_DEC_230 229
-# define BOOST_PP_DEC_231 230
-# define BOOST_PP_DEC_232 231
-# define BOOST_PP_DEC_233 232
-# define BOOST_PP_DEC_234 233
-# define BOOST_PP_DEC_235 234
-# define BOOST_PP_DEC_236 235
-# define BOOST_PP_DEC_237 236
-# define BOOST_PP_DEC_238 237
-# define BOOST_PP_DEC_239 238
-# define BOOST_PP_DEC_240 239
-# define BOOST_PP_DEC_241 240
-# define BOOST_PP_DEC_242 241
-# define BOOST_PP_DEC_243 242
-# define BOOST_PP_DEC_244 243
-# define BOOST_PP_DEC_245 244
-# define BOOST_PP_DEC_246 245
-# define BOOST_PP_DEC_247 246
-# define BOOST_PP_DEC_248 247
-# define BOOST_PP_DEC_249 248
-# define BOOST_PP_DEC_250 249
-# define BOOST_PP_DEC_251 250
-# define BOOST_PP_DEC_252 251
-# define BOOST_PP_DEC_253 252
-# define BOOST_PP_DEC_254 253
-# define BOOST_PP_DEC_255 254
-# define BOOST_PP_DEC_256 255
-#
-# endif
+++ /dev/null
-# /* 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_INC_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_INC */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_INC(x) BOOST_PP_INC_I(x)
-# else
-# define BOOST_PP_INC(x) BOOST_PP_INC_OO((x))
-# define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par
-# endif
-#
-# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x
-#
-# define BOOST_PP_INC_0 1
-# define BOOST_PP_INC_1 2
-# define BOOST_PP_INC_2 3
-# define BOOST_PP_INC_3 4
-# define BOOST_PP_INC_4 5
-# define BOOST_PP_INC_5 6
-# define BOOST_PP_INC_6 7
-# define BOOST_PP_INC_7 8
-# define BOOST_PP_INC_8 9
-# define BOOST_PP_INC_9 10
-# define BOOST_PP_INC_10 11
-# define BOOST_PP_INC_11 12
-# define BOOST_PP_INC_12 13
-# define BOOST_PP_INC_13 14
-# define BOOST_PP_INC_14 15
-# define BOOST_PP_INC_15 16
-# define BOOST_PP_INC_16 17
-# define BOOST_PP_INC_17 18
-# define BOOST_PP_INC_18 19
-# define BOOST_PP_INC_19 20
-# define BOOST_PP_INC_20 21
-# define BOOST_PP_INC_21 22
-# define BOOST_PP_INC_22 23
-# define BOOST_PP_INC_23 24
-# define BOOST_PP_INC_24 25
-# define BOOST_PP_INC_25 26
-# define BOOST_PP_INC_26 27
-# define BOOST_PP_INC_27 28
-# define BOOST_PP_INC_28 29
-# define BOOST_PP_INC_29 30
-# define BOOST_PP_INC_30 31
-# define BOOST_PP_INC_31 32
-# define BOOST_PP_INC_32 33
-# define BOOST_PP_INC_33 34
-# define BOOST_PP_INC_34 35
-# define BOOST_PP_INC_35 36
-# define BOOST_PP_INC_36 37
-# define BOOST_PP_INC_37 38
-# define BOOST_PP_INC_38 39
-# define BOOST_PP_INC_39 40
-# define BOOST_PP_INC_40 41
-# define BOOST_PP_INC_41 42
-# define BOOST_PP_INC_42 43
-# define BOOST_PP_INC_43 44
-# define BOOST_PP_INC_44 45
-# define BOOST_PP_INC_45 46
-# define BOOST_PP_INC_46 47
-# define BOOST_PP_INC_47 48
-# define BOOST_PP_INC_48 49
-# define BOOST_PP_INC_49 50
-# define BOOST_PP_INC_50 51
-# define BOOST_PP_INC_51 52
-# define BOOST_PP_INC_52 53
-# define BOOST_PP_INC_53 54
-# define BOOST_PP_INC_54 55
-# define BOOST_PP_INC_55 56
-# define BOOST_PP_INC_56 57
-# define BOOST_PP_INC_57 58
-# define BOOST_PP_INC_58 59
-# define BOOST_PP_INC_59 60
-# define BOOST_PP_INC_60 61
-# define BOOST_PP_INC_61 62
-# define BOOST_PP_INC_62 63
-# define BOOST_PP_INC_63 64
-# define BOOST_PP_INC_64 65
-# define BOOST_PP_INC_65 66
-# define BOOST_PP_INC_66 67
-# define BOOST_PP_INC_67 68
-# define BOOST_PP_INC_68 69
-# define BOOST_PP_INC_69 70
-# define BOOST_PP_INC_70 71
-# define BOOST_PP_INC_71 72
-# define BOOST_PP_INC_72 73
-# define BOOST_PP_INC_73 74
-# define BOOST_PP_INC_74 75
-# define BOOST_PP_INC_75 76
-# define BOOST_PP_INC_76 77
-# define BOOST_PP_INC_77 78
-# define BOOST_PP_INC_78 79
-# define BOOST_PP_INC_79 80
-# define BOOST_PP_INC_80 81
-# define BOOST_PP_INC_81 82
-# define BOOST_PP_INC_82 83
-# define BOOST_PP_INC_83 84
-# define BOOST_PP_INC_84 85
-# define BOOST_PP_INC_85 86
-# define BOOST_PP_INC_86 87
-# define BOOST_PP_INC_87 88
-# define BOOST_PP_INC_88 89
-# define BOOST_PP_INC_89 90
-# define BOOST_PP_INC_90 91
-# define BOOST_PP_INC_91 92
-# define BOOST_PP_INC_92 93
-# define BOOST_PP_INC_93 94
-# define BOOST_PP_INC_94 95
-# define BOOST_PP_INC_95 96
-# define BOOST_PP_INC_96 97
-# define BOOST_PP_INC_97 98
-# define BOOST_PP_INC_98 99
-# define BOOST_PP_INC_99 100
-# define BOOST_PP_INC_100 101
-# define BOOST_PP_INC_101 102
-# define BOOST_PP_INC_102 103
-# define BOOST_PP_INC_103 104
-# define BOOST_PP_INC_104 105
-# define BOOST_PP_INC_105 106
-# define BOOST_PP_INC_106 107
-# define BOOST_PP_INC_107 108
-# define BOOST_PP_INC_108 109
-# define BOOST_PP_INC_109 110
-# define BOOST_PP_INC_110 111
-# define BOOST_PP_INC_111 112
-# define BOOST_PP_INC_112 113
-# define BOOST_PP_INC_113 114
-# define BOOST_PP_INC_114 115
-# define BOOST_PP_INC_115 116
-# define BOOST_PP_INC_116 117
-# define BOOST_PP_INC_117 118
-# define BOOST_PP_INC_118 119
-# define BOOST_PP_INC_119 120
-# define BOOST_PP_INC_120 121
-# define BOOST_PP_INC_121 122
-# define BOOST_PP_INC_122 123
-# define BOOST_PP_INC_123 124
-# define BOOST_PP_INC_124 125
-# define BOOST_PP_INC_125 126
-# define BOOST_PP_INC_126 127
-# define BOOST_PP_INC_127 128
-# define BOOST_PP_INC_128 129
-# define BOOST_PP_INC_129 130
-# define BOOST_PP_INC_130 131
-# define BOOST_PP_INC_131 132
-# define BOOST_PP_INC_132 133
-# define BOOST_PP_INC_133 134
-# define BOOST_PP_INC_134 135
-# define BOOST_PP_INC_135 136
-# define BOOST_PP_INC_136 137
-# define BOOST_PP_INC_137 138
-# define BOOST_PP_INC_138 139
-# define BOOST_PP_INC_139 140
-# define BOOST_PP_INC_140 141
-# define BOOST_PP_INC_141 142
-# define BOOST_PP_INC_142 143
-# define BOOST_PP_INC_143 144
-# define BOOST_PP_INC_144 145
-# define BOOST_PP_INC_145 146
-# define BOOST_PP_INC_146 147
-# define BOOST_PP_INC_147 148
-# define BOOST_PP_INC_148 149
-# define BOOST_PP_INC_149 150
-# define BOOST_PP_INC_150 151
-# define BOOST_PP_INC_151 152
-# define BOOST_PP_INC_152 153
-# define BOOST_PP_INC_153 154
-# define BOOST_PP_INC_154 155
-# define BOOST_PP_INC_155 156
-# define BOOST_PP_INC_156 157
-# define BOOST_PP_INC_157 158
-# define BOOST_PP_INC_158 159
-# define BOOST_PP_INC_159 160
-# define BOOST_PP_INC_160 161
-# define BOOST_PP_INC_161 162
-# define BOOST_PP_INC_162 163
-# define BOOST_PP_INC_163 164
-# define BOOST_PP_INC_164 165
-# define BOOST_PP_INC_165 166
-# define BOOST_PP_INC_166 167
-# define BOOST_PP_INC_167 168
-# define BOOST_PP_INC_168 169
-# define BOOST_PP_INC_169 170
-# define BOOST_PP_INC_170 171
-# define BOOST_PP_INC_171 172
-# define BOOST_PP_INC_172 173
-# define BOOST_PP_INC_173 174
-# define BOOST_PP_INC_174 175
-# define BOOST_PP_INC_175 176
-# define BOOST_PP_INC_176 177
-# define BOOST_PP_INC_177 178
-# define BOOST_PP_INC_178 179
-# define BOOST_PP_INC_179 180
-# define BOOST_PP_INC_180 181
-# define BOOST_PP_INC_181 182
-# define BOOST_PP_INC_182 183
-# define BOOST_PP_INC_183 184
-# define BOOST_PP_INC_184 185
-# define BOOST_PP_INC_185 186
-# define BOOST_PP_INC_186 187
-# define BOOST_PP_INC_187 188
-# define BOOST_PP_INC_188 189
-# define BOOST_PP_INC_189 190
-# define BOOST_PP_INC_190 191
-# define BOOST_PP_INC_191 192
-# define BOOST_PP_INC_192 193
-# define BOOST_PP_INC_193 194
-# define BOOST_PP_INC_194 195
-# define BOOST_PP_INC_195 196
-# define BOOST_PP_INC_196 197
-# define BOOST_PP_INC_197 198
-# define BOOST_PP_INC_198 199
-# define BOOST_PP_INC_199 200
-# define BOOST_PP_INC_200 201
-# define BOOST_PP_INC_201 202
-# define BOOST_PP_INC_202 203
-# define BOOST_PP_INC_203 204
-# define BOOST_PP_INC_204 205
-# define BOOST_PP_INC_205 206
-# define BOOST_PP_INC_206 207
-# define BOOST_PP_INC_207 208
-# define BOOST_PP_INC_208 209
-# define BOOST_PP_INC_209 210
-# define BOOST_PP_INC_210 211
-# define BOOST_PP_INC_211 212
-# define BOOST_PP_INC_212 213
-# define BOOST_PP_INC_213 214
-# define BOOST_PP_INC_214 215
-# define BOOST_PP_INC_215 216
-# define BOOST_PP_INC_216 217
-# define BOOST_PP_INC_217 218
-# define BOOST_PP_INC_218 219
-# define BOOST_PP_INC_219 220
-# define BOOST_PP_INC_220 221
-# define BOOST_PP_INC_221 222
-# define BOOST_PP_INC_222 223
-# define BOOST_PP_INC_223 224
-# define BOOST_PP_INC_224 225
-# define BOOST_PP_INC_225 226
-# define BOOST_PP_INC_226 227
-# define BOOST_PP_INC_227 228
-# define BOOST_PP_INC_228 229
-# define BOOST_PP_INC_229 230
-# define BOOST_PP_INC_230 231
-# define BOOST_PP_INC_231 232
-# define BOOST_PP_INC_232 233
-# define BOOST_PP_INC_233 234
-# define BOOST_PP_INC_234 235
-# define BOOST_PP_INC_235 236
-# define BOOST_PP_INC_236 237
-# define BOOST_PP_INC_237 238
-# define BOOST_PP_INC_238 239
-# define BOOST_PP_INC_239 240
-# define BOOST_PP_INC_240 241
-# define BOOST_PP_INC_241 242
-# define BOOST_PP_INC_242 243
-# define BOOST_PP_INC_243 244
-# define BOOST_PP_INC_244 245
-# define BOOST_PP_INC_245 246
-# define BOOST_PP_INC_246 247
-# define BOOST_PP_INC_247 248
-# define BOOST_PP_INC_248 249
-# define BOOST_PP_INC_249 250
-# define BOOST_PP_INC_250 251
-# define BOOST_PP_INC_251 252
-# define BOOST_PP_INC_252 253
-# define BOOST_PP_INC_253 254
-# define BOOST_PP_INC_254 255
-# define BOOST_PP_INC_255 256
-# define BOOST_PP_INC_256 256
-#
-# endif
+++ /dev/null
-# /* 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_SUB_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_SUB */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_SUB(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# else
-# define BOOST_PP_SUB(x, y) BOOST_PP_SUB_I(x, y)
-# define BOOST_PP_SUB_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# endif
-#
-# define BOOST_PP_SUB_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I xy
-# else
-# define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
-# endif
-#
-# define BOOST_PP_SUB_O_I(x, y) (BOOST_PP_DEC(x), BOOST_PP_DEC(y))
-#
-# /* BOOST_PP_SUB_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_SUB_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# else
-# define BOOST_PP_SUB_D(d, x, y) BOOST_PP_SUB_D_I(d, x, y)
-# define BOOST_PP_SUB_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_CAT_HPP
-# define BOOST_PREPROCESSOR_CAT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_CAT */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
-# else
-# define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b))
-# define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_CAT_I(a, b) a ## b
-# else
-# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(a ## b)
-# define BOOST_PP_CAT_II(res) res
-# endif
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_COMMA_IF_HPP
-# define BOOST_PREPROCESSOR_COMMA_IF_HPP
-#
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_CONFIG_CONFIG_HPP
-# define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
-#
-# /* BOOST_PP_CONFIG_FLAGS */
-#
-# define BOOST_PP_CONFIG_STRICT() 0x0001
-# define BOOST_PP_CONFIG_IDEAL() 0x0002
-#
-# define BOOST_PP_CONFIG_MSVC() 0x0004
-# define BOOST_PP_CONFIG_MWCC() 0x0008
-# define BOOST_PP_CONFIG_BCC() 0x0010
-# define BOOST_PP_CONFIG_EDG() 0x0020
-# define BOOST_PP_CONFIG_DMC() 0x0040
-#
-# ifndef BOOST_PP_CONFIG_FLAGS
-# if defined(__SPIRIT_PP__) || defined(__MWERKS__) && __MWERKS__ >= 0x3200
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-# elif defined(__EDG__) || defined(__EDG_VERSION__)
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT())
-# elif defined(__MWERKS__)
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC())
-# elif defined(__DMC__)
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC())
-# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC())
-# elif defined(_MSC_VER)
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC())
-# else
-# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-# endif
-# endif
-#
-# /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */
-#
-# ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO
-# define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0
-# endif
-#
-# /* BOOST_PP_CONFIG_ERRORS */
-#
-# ifndef BOOST_PP_CONFIG_ERRORS
-# ifdef NDEBUG
-# define BOOST_PP_CONFIG_ERRORS 0
-# else
-# define BOOST_PP_CONFIG_ERRORS 1
-# endif
-# endif
-#
-# endif
+++ /dev/null
-# /* 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
+++ /dev/null
-# /* 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
+++ /dev/null
-# /* 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_MSVC_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_WHILE_1(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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
+++ /dev/null
-# /* 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, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(2, s))
-# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(3, s))
-# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(4, s))
-# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(5, s))
-# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(6, s))
-# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(7, s))
-# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(8, s))
-# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(9, s))
-# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(10, s))
-# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(11, s))
-# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(12, s))
-# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(13, s))
-# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(14, s))
-# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(15, s))
-# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(16, s))
-# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(17, s))
-# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(18, s))
-# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(19, s))
-# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(20, s))
-# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(21, s))
-# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(22, s))
-# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(23, s))
-# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(24, s))
-# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(25, s))
-# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(26, s))
-# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(27, s))
-# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(28, s))
-# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(29, s))
-# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(30, s))
-# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(31, s))
-# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(32, s))
-# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(33, s))
-# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(34, s))
-# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(35, s))
-# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(36, s))
-# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(37, s))
-# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(38, s))
-# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(39, s))
-# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(40, s))
-# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(41, s))
-# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(42, s))
-# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(43, s))
-# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(44, s))
-# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(45, s))
-# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(46, s))
-# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(47, s))
-# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(48, s))
-# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(49, s))
-# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(50, s))
-# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(51, s))
-# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(52, s))
-# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(53, s))
-# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(54, s))
-# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(55, s))
-# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(56, s))
-# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(57, s))
-# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(58, s))
-# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(59, s))
-# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(60, s))
-# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(61, s))
-# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(62, s))
-# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(63, s))
-# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(64, s))
-# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(65, s))
-# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(66, s))
-# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(67, s))
-# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(68, s))
-# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(69, s))
-# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(70, s))
-# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(71, s))
-# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(72, s))
-# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(73, s))
-# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(74, s))
-# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(75, s))
-# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(76, s))
-# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(77, s))
-# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(78, s))
-# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(79, s))
-# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(80, s))
-# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(81, s))
-# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(82, s))
-# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(83, s))
-# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(84, s))
-# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(85, s))
-# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(86, s))
-# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(87, s))
-# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(88, s))
-# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(89, s))
-# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(90, s))
-# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(91, s))
-# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(92, s))
-# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(93, s))
-# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(94, s))
-# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(95, s))
-# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(96, s))
-# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(97, s))
-# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(98, s))
-# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(99, s))
-# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(100, s))
-# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(101, s))
-# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(102, s))
-# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(103, s))
-# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(104, s))
-# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(105, s))
-# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(106, s))
-# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(107, s))
-# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(108, s))
-# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(109, s))
-# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(110, s))
-# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(111, s))
-# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(112, s))
-# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(113, s))
-# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(114, s))
-# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(115, s))
-# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(116, s))
-# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(117, s))
-# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(118, s))
-# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(119, s))
-# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(120, s))
-# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(121, s))
-# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(122, s))
-# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(123, s))
-# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(124, s))
-# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(125, s))
-# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(126, s))
-# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(127, s))
-# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(128, s))
-# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(129, s))
-# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(130, s))
-# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(131, s))
-# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(132, s))
-# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(133, s))
-# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(134, s))
-# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(135, s))
-# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(136, s))
-# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(137, s))
-# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(138, s))
-# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(139, s))
-# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(140, s))
-# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(141, s))
-# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(142, s))
-# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(143, s))
-# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(144, s))
-# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(145, s))
-# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(146, s))
-# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(147, s))
-# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(148, s))
-# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(149, s))
-# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(150, s))
-# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(151, s))
-# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(152, s))
-# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(153, s))
-# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(154, s))
-# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(155, s))
-# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(156, s))
-# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(157, s))
-# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(158, s))
-# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(159, s))
-# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(160, s))
-# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(161, s))
-# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(162, s))
-# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(163, s))
-# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(164, s))
-# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(165, s))
-# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(166, s))
-# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(167, s))
-# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(168, s))
-# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(169, s))
-# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(170, s))
-# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(171, s))
-# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(172, s))
-# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(173, s))
-# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(174, s))
-# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(175, s))
-# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(176, s))
-# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(177, s))
-# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(178, s))
-# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(179, s))
-# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(180, s))
-# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(181, s))
-# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(182, s))
-# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(183, s))
-# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(184, s))
-# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(185, s))
-# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(186, s))
-# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(187, s))
-# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(188, s))
-# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(189, s))
-# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(190, s))
-# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(191, s))
-# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(192, s))
-# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(193, s))
-# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(194, s))
-# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(195, s))
-# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(196, s))
-# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(197, s))
-# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(198, s))
-# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(199, s))
-# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(200, s))
-# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(201, s))
-# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(202, s))
-# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(203, s))
-# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(204, s))
-# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(205, s))
-# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(206, s))
-# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(207, s))
-# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(208, s))
-# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(209, s))
-# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(210, s))
-# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(211, s))
-# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(212, s))
-# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(213, s))
-# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(214, s))
-# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(215, s))
-# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(216, s))
-# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(217, s))
-# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(218, s))
-# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(219, s))
-# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(220, s))
-# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(221, s))
-# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(222, s))
-# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(223, s))
-# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(224, s))
-# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(225, s))
-# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(226, s))
-# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(227, s))
-# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(228, s))
-# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(229, s))
-# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(230, s))
-# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(231, s))
-# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(232, s))
-# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(233, s))
-# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(234, s))
-# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(235, s))
-# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(236, s))
-# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(237, s))
-# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(238, s))
-# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(239, s))
-# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(240, s))
-# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(241, s))
-# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(242, s))
-# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(243, s))
-# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(244, s))
-# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(245, s))
-# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(246, s))
-# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(247, s))
-# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(248, s))
-# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(249, s))
-# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(250, s))
-# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(251, s))
-# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(252, s))
-# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(253, s))
-# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(254, s))
-# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(255, s))
-# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(256, s))
-# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(257, s))
-#
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_EXPR_IIF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_EXPR_IIF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr)
-# else
-# define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr))
-# define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par
-# endif
-#
-# define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr)
-#
-# define BOOST_PP_EXPR_IIF_0(expr)
-# define BOOST_PP_EXPR_IIF_1(expr) expr
-#
-# endif
+++ /dev/null
-# /* 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_IF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_IF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-#
-# /* BOOST_PP_IF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
-# else
-# define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f)
-# define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
-# endif
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_IIF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_IIF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
-# else
-# define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f))
-# define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
-# else
-# define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f))
-# define BOOST_PP_IIF_II(id) id
-# endif
-#
-# define BOOST_PP_IIF_0(t, f) f
-# define BOOST_PP_IIF_1(t, f) t
-#
-# endif
+++ /dev/null
-# /* 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_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_WHILE_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/list/fold_left.hpp>
-# include <boost/preprocessor/list/fold_right.hpp>
-# include <boost/preprocessor/logical/bitand.hpp>
-#
-# /* BOOST_PP_WHILE */
-#
-# if 0
-# define BOOST_PP_WHILE(pred, op, state)
-# endif
-#
-# define BOOST_PP_WHILE BOOST_PP_CAT(BOOST_PP_WHILE_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_CHECK_, BOOST_PP_LIST_FOLD_RIGHT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL))))
-# else
-# define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)))
-# endif
-#
-# define BOOST_PP_WHILE_F(d, _) 0
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# include <boost/preprocessor/control/detail/edg/while.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# include <boost/preprocessor/control/detail/msvc/while.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-# include <boost/preprocessor/control/detail/dmc/while.hpp>
-# else
-# include <boost/preprocessor/control/detail/while.hpp>
-# endif
-#
-# define BOOST_PP_WHILE_257(p, o, s) BOOST_PP_ERROR(0x0001)
-#
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_1(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_2(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_3(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_4(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_5(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_6(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_7(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_8(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_9(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_10(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_11(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_12(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_13(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_14(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_15(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_16(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_17(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_18(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_19(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_20(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_21(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_22(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_23(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_24(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_25(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_26(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_27(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_28(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_29(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_30(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_31(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_32(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_33(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_34(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_35(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_36(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_37(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_38(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_39(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_40(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_41(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_42(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_43(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_44(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_45(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_46(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_47(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_48(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_49(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_50(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_51(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_52(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_53(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_54(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_55(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_56(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_57(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_58(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_59(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_60(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_61(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_62(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_63(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_64(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_65(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_66(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_67(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_68(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_69(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_70(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_71(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_72(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_73(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_74(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_75(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_76(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_77(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_78(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_79(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_80(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_81(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_82(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_83(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_84(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_85(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_86(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_87(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_88(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_89(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_90(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_91(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_92(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_93(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_94(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_95(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_96(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_97(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_98(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_99(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_100(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_101(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_102(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_103(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_104(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_105(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_106(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_107(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_108(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_109(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_110(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_111(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_112(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_113(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_114(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_115(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_116(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_117(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_118(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_119(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_120(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_121(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_122(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_123(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_124(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_125(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_126(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_127(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_128(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_129(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_130(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_131(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_132(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_133(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_134(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_135(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_136(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_137(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_138(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_139(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_140(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_141(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_142(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_143(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_144(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_145(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_146(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_147(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_148(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_149(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_150(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_151(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_152(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_153(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_154(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_155(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_156(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_157(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_158(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_159(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_160(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_161(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_162(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_163(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_164(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_165(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_166(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_167(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_168(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_169(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_170(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_171(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_172(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_173(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_174(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_175(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_176(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_177(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_178(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_179(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_180(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_181(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_182(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_183(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_184(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_185(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_186(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_187(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_188(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_189(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_190(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_191(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_192(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_193(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_194(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_195(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_196(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_197(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_198(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_199(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_200(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_201(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_202(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_203(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_204(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_205(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_206(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_207(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_208(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_209(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_210(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_211(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_212(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_213(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_214(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_215(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_216(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_217(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_218(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_219(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_220(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_221(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_222(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_223(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_224(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_225(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_226(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_227(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_228(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_229(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_230(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_231(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_232(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_233(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_234(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_235(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_236(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_237(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_238(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_239(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_240(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_241(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_242(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_243(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_244(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_245(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_246(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_247(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_248(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_249(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_250(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_251(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_252(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_253(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_254(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_255(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_256(p, o, s) 0
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_ERROR_HPP
-# define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_ERROR */
-#
-# if BOOST_PP_CONFIG_ERRORS
-# define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code)
-# endif
-#
-# define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS)
-# define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW)
-# define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW)
-# define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW)
-# define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW)
-# define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW)
-# define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW)
-# define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO)
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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/config/config.hpp>
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-# include <boost/preprocessor/detail/dmc/auto_rec.hpp>
-# else
-#
-# 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
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_CHECK_HPP
-# define BOOST_PREPROCESSOR_DETAIL_CHECK_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_CHECK */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_D(x, type)
-# else
-# define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_OO((x, type))
-# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_D ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, type x))
-# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-# define BOOST_PP_CHECK_2(res, _) res
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(type x)
-# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-# define BOOST_PP_CHECK_2(chk) BOOST_PP_CHECK_3((BOOST_PP_CHECK_RESULT_ ## chk))
-# define BOOST_PP_CHECK_3(im) BOOST_PP_CHECK_5(BOOST_PP_CHECK_4 im)
-# define BOOST_PP_CHECK_4(res, _) res
-# define BOOST_PP_CHECK_5(res) res
-# else // DMC
-# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_OO((type x))
-# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_0 ## par
-# define BOOST_PP_CHECK_0(chk) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, chk))
-# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-# define BOOST_PP_CHECK_2(res, _) res
-# endif
-#
-# define BOOST_PP_CHECK_RESULT_1 1, BOOST_PP_NIL
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_BINARY_HPP
-# define BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/detail/check.hpp>
-#
-# /* BOOST_PP_IS_BINARY */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_IS_BINARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK)
-# else
-# define BOOST_PP_IS_BINARY(x) BOOST_PP_IS_BINARY_I(x)
-# define BOOST_PP_IS_BINARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK)
-# endif
-#
-# define BOOST_PP_IS_BINARY_CHECK(a, b) 1
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_BINARY_CHECK 0, BOOST_PP_NIL
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_EMPTY_HPP
-# define BOOST_PREPROCESSOR_EMPTY_HPP
-#
-# include <boost/preprocessor/facilities/empty.hpp>
-#
-# endif
+++ /dev/null
-# /* 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_EMPTY_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
-#
-# /* BOOST_PP_EMPTY */
-#
-# define BOOST_PP_EMPTY()
-#
-# endif
+++ /dev/null
-# /* 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_IDENTITY_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
-#
-# include <boost/preprocessor/facilities/empty.hpp>
-#
-# /* BOOST_PP_IDENTITY */
-#
-# define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_IDENTITY_HPP
-# define BOOST_PREPROCESSOR_IDENTITY_HPP
-#
-# include <boost/preprocessor/facilities/identity.hpp>
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_INC_HPP
-# define BOOST_PREPROCESSOR_INC_HPP
-#
-# include <boost/preprocessor/arithmetic/inc.hpp>
-#
-# endif
+++ /dev/null
-# /* 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)
-# *
-# * See http://www.boost.org for most recent version.
-# */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_ADT_HPP
-# define BOOST_PREPROCESSOR_LIST_ADT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/detail/is_binary.hpp>
-# include <boost/preprocessor/logical/compl.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# /* BOOST_PP_LIST_CONS */
-#
-# define BOOST_PP_LIST_CONS(head, tail) (head, tail)
-#
-# /* BOOST_PP_LIST_NIL */
-#
-# define BOOST_PP_LIST_NIL BOOST_PP_NIL
-#
-# /* BOOST_PP_LIST_FIRST */
-#
-# define BOOST_PP_LIST_FIRST(list) BOOST_PP_LIST_FIRST_D(list)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I list
-# else
-# define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I ## list
-# endif
-#
-# define BOOST_PP_LIST_FIRST_I(head, tail) head
-#
-# /* BOOST_PP_LIST_REST */
-#
-# define BOOST_PP_LIST_REST(list) BOOST_PP_LIST_REST_D(list)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I list
-# else
-# define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I ## list
-# endif
-#
-# define BOOST_PP_LIST_REST_I(head, tail) tail
-#
-# /* BOOST_PP_LIST_IS_CONS */
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-# define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_LIST_IS_CONS_D(list)
-# define BOOST_PP_LIST_IS_CONS_D(list) BOOST_PP_LIST_IS_CONS_ ## list
-# define BOOST_PP_LIST_IS_CONS_(head, tail) 1
-# define BOOST_PP_LIST_IS_CONS_BOOST_PP_NIL 0
-# else
-# define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_IS_BINARY(list)
-# endif
-#
-# /* BOOST_PP_LIST_IS_NIL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-# define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_IS_BINARY(list))
-# else
-# define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_LIST_IS_CONS(list))
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_APPEND_HPP
-# define BOOST_PREPROCESSOR_LIST_APPEND_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/fold_right.hpp>
-#
-# /* BOOST_PP_LIST_APPEND */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a)
-# else
-# define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_APPEND_I(a, b)
-# define BOOST_PP_LIST_APPEND_I(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a)
-# endif
-#
-# define BOOST_PP_LIST_APPEND_O(d, s, x) (x, s)
-#
-# /* BOOST_PP_LIST_APPEND_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a)
-# else
-# define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_APPEND_D_I(d, a, b)
-# define BOOST_PP_LIST_APPEND_D_I(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a)
-# endif
-#
-# endif
+++ /dev/null
-# /* 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
+++ /dev/null
-# /* 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
+++ /dev/null
-# /* 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/eat.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, 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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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
+++ /dev/null
-# /* 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_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
-#
-# include <boost/preprocessor/list/fold_left.hpp>
-# include <boost/preprocessor/list/reverse.hpp>
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1(o, s, BOOST_PP_LIST_REVERSE_D(1, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2(o, s, BOOST_PP_LIST_REVERSE_D(2, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3(o, s, BOOST_PP_LIST_REVERSE_D(3, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4(o, s, BOOST_PP_LIST_REVERSE_D(4, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5(o, s, BOOST_PP_LIST_REVERSE_D(5, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6(o, s, BOOST_PP_LIST_REVERSE_D(6, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7(o, s, BOOST_PP_LIST_REVERSE_D(7, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8(o, s, BOOST_PP_LIST_REVERSE_D(8, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9(o, s, BOOST_PP_LIST_REVERSE_D(9, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10(o, s, BOOST_PP_LIST_REVERSE_D(10, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11(o, s, BOOST_PP_LIST_REVERSE_D(11, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12(o, s, BOOST_PP_LIST_REVERSE_D(12, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13(o, s, BOOST_PP_LIST_REVERSE_D(13, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14(o, s, BOOST_PP_LIST_REVERSE_D(14, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15(o, s, BOOST_PP_LIST_REVERSE_D(15, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16(o, s, BOOST_PP_LIST_REVERSE_D(16, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17(o, s, BOOST_PP_LIST_REVERSE_D(17, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18(o, s, BOOST_PP_LIST_REVERSE_D(18, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19(o, s, BOOST_PP_LIST_REVERSE_D(19, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20(o, s, BOOST_PP_LIST_REVERSE_D(20, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21(o, s, BOOST_PP_LIST_REVERSE_D(21, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22(o, s, BOOST_PP_LIST_REVERSE_D(22, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23(o, s, BOOST_PP_LIST_REVERSE_D(23, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24(o, s, BOOST_PP_LIST_REVERSE_D(24, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25(o, s, BOOST_PP_LIST_REVERSE_D(25, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26(o, s, BOOST_PP_LIST_REVERSE_D(26, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27(o, s, BOOST_PP_LIST_REVERSE_D(27, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28(o, s, BOOST_PP_LIST_REVERSE_D(28, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29(o, s, BOOST_PP_LIST_REVERSE_D(29, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30(o, s, BOOST_PP_LIST_REVERSE_D(30, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31(o, s, BOOST_PP_LIST_REVERSE_D(31, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32(o, s, BOOST_PP_LIST_REVERSE_D(32, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33(o, s, BOOST_PP_LIST_REVERSE_D(33, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34(o, s, BOOST_PP_LIST_REVERSE_D(34, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35(o, s, BOOST_PP_LIST_REVERSE_D(35, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36(o, s, BOOST_PP_LIST_REVERSE_D(36, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37(o, s, BOOST_PP_LIST_REVERSE_D(37, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38(o, s, BOOST_PP_LIST_REVERSE_D(38, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39(o, s, BOOST_PP_LIST_REVERSE_D(39, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40(o, s, BOOST_PP_LIST_REVERSE_D(40, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41(o, s, BOOST_PP_LIST_REVERSE_D(41, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42(o, s, BOOST_PP_LIST_REVERSE_D(42, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43(o, s, BOOST_PP_LIST_REVERSE_D(43, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44(o, s, BOOST_PP_LIST_REVERSE_D(44, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45(o, s, BOOST_PP_LIST_REVERSE_D(45, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46(o, s, BOOST_PP_LIST_REVERSE_D(46, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47(o, s, BOOST_PP_LIST_REVERSE_D(47, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48(o, s, BOOST_PP_LIST_REVERSE_D(48, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49(o, s, BOOST_PP_LIST_REVERSE_D(49, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50(o, s, BOOST_PP_LIST_REVERSE_D(50, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51(o, s, BOOST_PP_LIST_REVERSE_D(51, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52(o, s, BOOST_PP_LIST_REVERSE_D(52, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53(o, s, BOOST_PP_LIST_REVERSE_D(53, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54(o, s, BOOST_PP_LIST_REVERSE_D(54, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55(o, s, BOOST_PP_LIST_REVERSE_D(55, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56(o, s, BOOST_PP_LIST_REVERSE_D(56, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57(o, s, BOOST_PP_LIST_REVERSE_D(57, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58(o, s, BOOST_PP_LIST_REVERSE_D(58, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59(o, s, BOOST_PP_LIST_REVERSE_D(59, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60(o, s, BOOST_PP_LIST_REVERSE_D(60, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61(o, s, BOOST_PP_LIST_REVERSE_D(61, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62(o, s, BOOST_PP_LIST_REVERSE_D(62, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63(o, s, BOOST_PP_LIST_REVERSE_D(63, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64(o, s, BOOST_PP_LIST_REVERSE_D(64, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65(o, s, BOOST_PP_LIST_REVERSE_D(65, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66(o, s, BOOST_PP_LIST_REVERSE_D(66, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67(o, s, BOOST_PP_LIST_REVERSE_D(67, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68(o, s, BOOST_PP_LIST_REVERSE_D(68, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69(o, s, BOOST_PP_LIST_REVERSE_D(69, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70(o, s, BOOST_PP_LIST_REVERSE_D(70, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71(o, s, BOOST_PP_LIST_REVERSE_D(71, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72(o, s, BOOST_PP_LIST_REVERSE_D(72, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73(o, s, BOOST_PP_LIST_REVERSE_D(73, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74(o, s, BOOST_PP_LIST_REVERSE_D(74, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75(o, s, BOOST_PP_LIST_REVERSE_D(75, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76(o, s, BOOST_PP_LIST_REVERSE_D(76, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77(o, s, BOOST_PP_LIST_REVERSE_D(77, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78(o, s, BOOST_PP_LIST_REVERSE_D(78, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79(o, s, BOOST_PP_LIST_REVERSE_D(79, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80(o, s, BOOST_PP_LIST_REVERSE_D(80, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81(o, s, BOOST_PP_LIST_REVERSE_D(81, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82(o, s, BOOST_PP_LIST_REVERSE_D(82, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83(o, s, BOOST_PP_LIST_REVERSE_D(83, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84(o, s, BOOST_PP_LIST_REVERSE_D(84, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85(o, s, BOOST_PP_LIST_REVERSE_D(85, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86(o, s, BOOST_PP_LIST_REVERSE_D(86, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87(o, s, BOOST_PP_LIST_REVERSE_D(87, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88(o, s, BOOST_PP_LIST_REVERSE_D(88, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89(o, s, BOOST_PP_LIST_REVERSE_D(89, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90(o, s, BOOST_PP_LIST_REVERSE_D(90, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91(o, s, BOOST_PP_LIST_REVERSE_D(91, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92(o, s, BOOST_PP_LIST_REVERSE_D(92, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93(o, s, BOOST_PP_LIST_REVERSE_D(93, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94(o, s, BOOST_PP_LIST_REVERSE_D(94, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95(o, s, BOOST_PP_LIST_REVERSE_D(95, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96(o, s, BOOST_PP_LIST_REVERSE_D(96, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97(o, s, BOOST_PP_LIST_REVERSE_D(97, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98(o, s, BOOST_PP_LIST_REVERSE_D(98, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99(o, s, BOOST_PP_LIST_REVERSE_D(99, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100(o, s, BOOST_PP_LIST_REVERSE_D(100, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101(o, s, BOOST_PP_LIST_REVERSE_D(101, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102(o, s, BOOST_PP_LIST_REVERSE_D(102, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103(o, s, BOOST_PP_LIST_REVERSE_D(103, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104(o, s, BOOST_PP_LIST_REVERSE_D(104, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105(o, s, BOOST_PP_LIST_REVERSE_D(105, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106(o, s, BOOST_PP_LIST_REVERSE_D(106, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107(o, s, BOOST_PP_LIST_REVERSE_D(107, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108(o, s, BOOST_PP_LIST_REVERSE_D(108, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109(o, s, BOOST_PP_LIST_REVERSE_D(109, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110(o, s, BOOST_PP_LIST_REVERSE_D(110, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111(o, s, BOOST_PP_LIST_REVERSE_D(111, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112(o, s, BOOST_PP_LIST_REVERSE_D(112, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113(o, s, BOOST_PP_LIST_REVERSE_D(113, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114(o, s, BOOST_PP_LIST_REVERSE_D(114, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115(o, s, BOOST_PP_LIST_REVERSE_D(115, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116(o, s, BOOST_PP_LIST_REVERSE_D(116, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117(o, s, BOOST_PP_LIST_REVERSE_D(117, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118(o, s, BOOST_PP_LIST_REVERSE_D(118, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119(o, s, BOOST_PP_LIST_REVERSE_D(119, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120(o, s, BOOST_PP_LIST_REVERSE_D(120, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121(o, s, BOOST_PP_LIST_REVERSE_D(121, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122(o, s, BOOST_PP_LIST_REVERSE_D(122, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123(o, s, BOOST_PP_LIST_REVERSE_D(123, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124(o, s, BOOST_PP_LIST_REVERSE_D(124, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125(o, s, BOOST_PP_LIST_REVERSE_D(125, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126(o, s, BOOST_PP_LIST_REVERSE_D(126, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127(o, s, BOOST_PP_LIST_REVERSE_D(127, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128(o, s, BOOST_PP_LIST_REVERSE_D(128, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129(o, s, BOOST_PP_LIST_REVERSE_D(129, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130(o, s, BOOST_PP_LIST_REVERSE_D(130, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131(o, s, BOOST_PP_LIST_REVERSE_D(131, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132(o, s, BOOST_PP_LIST_REVERSE_D(132, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133(o, s, BOOST_PP_LIST_REVERSE_D(133, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134(o, s, BOOST_PP_LIST_REVERSE_D(134, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135(o, s, BOOST_PP_LIST_REVERSE_D(135, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136(o, s, BOOST_PP_LIST_REVERSE_D(136, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137(o, s, BOOST_PP_LIST_REVERSE_D(137, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138(o, s, BOOST_PP_LIST_REVERSE_D(138, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139(o, s, BOOST_PP_LIST_REVERSE_D(139, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140(o, s, BOOST_PP_LIST_REVERSE_D(140, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141(o, s, BOOST_PP_LIST_REVERSE_D(141, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142(o, s, BOOST_PP_LIST_REVERSE_D(142, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143(o, s, BOOST_PP_LIST_REVERSE_D(143, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144(o, s, BOOST_PP_LIST_REVERSE_D(144, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145(o, s, BOOST_PP_LIST_REVERSE_D(145, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146(o, s, BOOST_PP_LIST_REVERSE_D(146, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147(o, s, BOOST_PP_LIST_REVERSE_D(147, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148(o, s, BOOST_PP_LIST_REVERSE_D(148, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149(o, s, BOOST_PP_LIST_REVERSE_D(149, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150(o, s, BOOST_PP_LIST_REVERSE_D(150, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151(o, s, BOOST_PP_LIST_REVERSE_D(151, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152(o, s, BOOST_PP_LIST_REVERSE_D(152, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153(o, s, BOOST_PP_LIST_REVERSE_D(153, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154(o, s, BOOST_PP_LIST_REVERSE_D(154, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155(o, s, BOOST_PP_LIST_REVERSE_D(155, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156(o, s, BOOST_PP_LIST_REVERSE_D(156, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157(o, s, BOOST_PP_LIST_REVERSE_D(157, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158(o, s, BOOST_PP_LIST_REVERSE_D(158, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159(o, s, BOOST_PP_LIST_REVERSE_D(159, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160(o, s, BOOST_PP_LIST_REVERSE_D(160, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161(o, s, BOOST_PP_LIST_REVERSE_D(161, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162(o, s, BOOST_PP_LIST_REVERSE_D(162, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163(o, s, BOOST_PP_LIST_REVERSE_D(163, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164(o, s, BOOST_PP_LIST_REVERSE_D(164, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165(o, s, BOOST_PP_LIST_REVERSE_D(165, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166(o, s, BOOST_PP_LIST_REVERSE_D(166, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167(o, s, BOOST_PP_LIST_REVERSE_D(167, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168(o, s, BOOST_PP_LIST_REVERSE_D(168, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169(o, s, BOOST_PP_LIST_REVERSE_D(169, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170(o, s, BOOST_PP_LIST_REVERSE_D(170, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171(o, s, BOOST_PP_LIST_REVERSE_D(171, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172(o, s, BOOST_PP_LIST_REVERSE_D(172, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173(o, s, BOOST_PP_LIST_REVERSE_D(173, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174(o, s, BOOST_PP_LIST_REVERSE_D(174, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175(o, s, BOOST_PP_LIST_REVERSE_D(175, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176(o, s, BOOST_PP_LIST_REVERSE_D(176, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177(o, s, BOOST_PP_LIST_REVERSE_D(177, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178(o, s, BOOST_PP_LIST_REVERSE_D(178, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179(o, s, BOOST_PP_LIST_REVERSE_D(179, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180(o, s, BOOST_PP_LIST_REVERSE_D(180, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181(o, s, BOOST_PP_LIST_REVERSE_D(181, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182(o, s, BOOST_PP_LIST_REVERSE_D(182, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183(o, s, BOOST_PP_LIST_REVERSE_D(183, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184(o, s, BOOST_PP_LIST_REVERSE_D(184, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185(o, s, BOOST_PP_LIST_REVERSE_D(185, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186(o, s, BOOST_PP_LIST_REVERSE_D(186, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187(o, s, BOOST_PP_LIST_REVERSE_D(187, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188(o, s, BOOST_PP_LIST_REVERSE_D(188, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189(o, s, BOOST_PP_LIST_REVERSE_D(189, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190(o, s, BOOST_PP_LIST_REVERSE_D(190, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191(o, s, BOOST_PP_LIST_REVERSE_D(191, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192(o, s, BOOST_PP_LIST_REVERSE_D(192, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193(o, s, BOOST_PP_LIST_REVERSE_D(193, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194(o, s, BOOST_PP_LIST_REVERSE_D(194, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195(o, s, BOOST_PP_LIST_REVERSE_D(195, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196(o, s, BOOST_PP_LIST_REVERSE_D(196, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197(o, s, BOOST_PP_LIST_REVERSE_D(197, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198(o, s, BOOST_PP_LIST_REVERSE_D(198, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199(o, s, BOOST_PP_LIST_REVERSE_D(199, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200(o, s, BOOST_PP_LIST_REVERSE_D(200, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201(o, s, BOOST_PP_LIST_REVERSE_D(201, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202(o, s, BOOST_PP_LIST_REVERSE_D(202, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203(o, s, BOOST_PP_LIST_REVERSE_D(203, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204(o, s, BOOST_PP_LIST_REVERSE_D(204, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205(o, s, BOOST_PP_LIST_REVERSE_D(205, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206(o, s, BOOST_PP_LIST_REVERSE_D(206, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207(o, s, BOOST_PP_LIST_REVERSE_D(207, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208(o, s, BOOST_PP_LIST_REVERSE_D(208, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209(o, s, BOOST_PP_LIST_REVERSE_D(209, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210(o, s, BOOST_PP_LIST_REVERSE_D(210, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211(o, s, BOOST_PP_LIST_REVERSE_D(211, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212(o, s, BOOST_PP_LIST_REVERSE_D(212, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213(o, s, BOOST_PP_LIST_REVERSE_D(213, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214(o, s, BOOST_PP_LIST_REVERSE_D(214, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215(o, s, BOOST_PP_LIST_REVERSE_D(215, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216(o, s, BOOST_PP_LIST_REVERSE_D(216, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217(o, s, BOOST_PP_LIST_REVERSE_D(217, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218(o, s, BOOST_PP_LIST_REVERSE_D(218, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219(o, s, BOOST_PP_LIST_REVERSE_D(219, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220(o, s, BOOST_PP_LIST_REVERSE_D(220, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221(o, s, BOOST_PP_LIST_REVERSE_D(221, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222(o, s, BOOST_PP_LIST_REVERSE_D(222, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223(o, s, BOOST_PP_LIST_REVERSE_D(223, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224(o, s, BOOST_PP_LIST_REVERSE_D(224, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225(o, s, BOOST_PP_LIST_REVERSE_D(225, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226(o, s, BOOST_PP_LIST_REVERSE_D(226, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227(o, s, BOOST_PP_LIST_REVERSE_D(227, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228(o, s, BOOST_PP_LIST_REVERSE_D(228, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229(o, s, BOOST_PP_LIST_REVERSE_D(229, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230(o, s, BOOST_PP_LIST_REVERSE_D(230, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231(o, s, BOOST_PP_LIST_REVERSE_D(231, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232(o, s, BOOST_PP_LIST_REVERSE_D(232, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233(o, s, BOOST_PP_LIST_REVERSE_D(233, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234(o, s, BOOST_PP_LIST_REVERSE_D(234, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235(o, s, BOOST_PP_LIST_REVERSE_D(235, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236(o, s, BOOST_PP_LIST_REVERSE_D(236, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237(o, s, BOOST_PP_LIST_REVERSE_D(237, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238(o, s, BOOST_PP_LIST_REVERSE_D(238, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239(o, s, BOOST_PP_LIST_REVERSE_D(239, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240(o, s, BOOST_PP_LIST_REVERSE_D(240, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241(o, s, BOOST_PP_LIST_REVERSE_D(241, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242(o, s, BOOST_PP_LIST_REVERSE_D(242, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243(o, s, BOOST_PP_LIST_REVERSE_D(243, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244(o, s, BOOST_PP_LIST_REVERSE_D(244, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245(o, s, BOOST_PP_LIST_REVERSE_D(245, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246(o, s, BOOST_PP_LIST_REVERSE_D(246, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247(o, s, BOOST_PP_LIST_REVERSE_D(247, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248(o, s, BOOST_PP_LIST_REVERSE_D(248, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249(o, s, BOOST_PP_LIST_REVERSE_D(249, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250(o, s, BOOST_PP_LIST_REVERSE_D(250, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251(o, s, BOOST_PP_LIST_REVERSE_D(251, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252(o, s, BOOST_PP_LIST_REVERSE_D(252, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253(o, s, BOOST_PP_LIST_REVERSE_D(253, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254(o, s, BOOST_PP_LIST_REVERSE_D(254, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255(o, s, BOOST_PP_LIST_REVERSE_D(255, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256(o, s, BOOST_PP_LIST_REVERSE_D(256, l))
-#
-# endif
+++ /dev/null
-# /* 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_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-#
-# /* BOOST_PP_LIST_FOLD_LEFT */
-#
-# if 0
-# define BOOST_PP_LIST_FOLD_LEFT(op, state, list)
-# endif
-#
-# define BOOST_PP_LIST_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
-#
-# define BOOST_PP_LIST_FOLD_LEFT_257(o, s, l) BOOST_PP_ERROR(0x0004)
-#
-# define BOOST_PP_LIST_FOLD_LEFT_D(d, o, s, l) BOOST_PP_LIST_FOLD_LEFT_ ## d(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_2ND BOOST_PP_LIST_FOLD_LEFT
-# define BOOST_PP_LIST_FOLD_LEFT_2ND_D BOOST_PP_LIST_FOLD_LEFT_D
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# include <boost/preprocessor/list/detail/edg/fold_left.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-# include <boost/preprocessor/list/detail/dmc/fold_left.hpp>
-# else
-# include <boost/preprocessor/list/detail/fold_left.hpp>
-# endif
-#
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) 0
-#
-# endif
+++ /dev/null
-# /* 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_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-#
-# if 0
-# define BOOST_PP_LIST_FOLD_RIGHT(op, state, list)
-# endif
-#
-# define BOOST_PP_LIST_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) BOOST_PP_ERROR(0x0004)
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) BOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_2ND BOOST_PP_LIST_FOLD_RIGHT
-# define BOOST_PP_LIST_FOLD_RIGHT_2ND_D BOOST_PP_LIST_FOLD_RIGHT_D
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# include <boost/preprocessor/list/detail/edg/fold_right.hpp>
-# else
-# include <boost/preprocessor/list/detail/fold_right.hpp>
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_LIST_FOR_EACH_I_HPP
-# define BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
-#
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/adt.hpp>
-# include <boost/preprocessor/repetition/for.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_LIST_FOR_EACH_I */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# else
-# define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list)
-# define BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-# define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_FOR_EACH_I_P_D x
-# define BOOST_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) BOOST_PP_LIST_IS_CONS(l)
-# else
-# define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(4, 2, x))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_LIST_FOR_EACH_I_O(r, x) BOOST_PP_LIST_FOR_EACH_I_O_D x
-# define BOOST_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, BOOST_PP_LIST_REST(l), BOOST_PP_INC(i))
-# else
-# define BOOST_PP_LIST_FOR_EACH_I_O(r, x) (BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(4, 2, x)), BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 3, x)))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_D(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))
-# else
-# define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_REM_4 x)
-# define BOOST_PP_LIST_FOR_EACH_I_M_I(r, x_e) BOOST_PP_LIST_FOR_EACH_I_M_D(r, x_e)
-# endif
-#
-# define BOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, BOOST_PP_LIST_FIRST(l))
-#
-# /* BOOST_PP_LIST_FOR_EACH_I_R */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# else
-# define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list)
-# define BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_REVERSE_HPP
-# define BOOST_PREPROCESSOR_LIST_REVERSE_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/fold_left.hpp>
-#
-# /* BOOST_PP_LIST_REVERSE */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# else
-# define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_REVERSE_I(list)
-# define BOOST_PP_LIST_REVERSE_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# endif
-#
-# define BOOST_PP_LIST_REVERSE_O(d, s, x) (x, s)
-#
-# /* BOOST_PP_LIST_REVERSE_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# else
-# define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_REVERSE_D_I(d, list)
-# define BOOST_PP_LIST_REVERSE_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_TRANSFORM_HPP
-# define BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/fold_right.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_LIST_TRANSFORM */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# else
-# define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_LIST_TRANSFORM_I(op, data, list)
-# define BOOST_PP_LIST_TRANSFORM_I(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, BOOST_PP_TUPLE_ELEM(3, 0, odr), BOOST_PP_TUPLE_ELEM(3, 1, odr), BOOST_PP_TUPLE_ELEM(3, 2, odr), elem)
-# else
-# define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_I(d, BOOST_PP_TUPLE_REM_3 odr, elem)
-# define BOOST_PP_LIST_TRANSFORM_O_I(d, im, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, im, elem)
-# endif
-#
-# define BOOST_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res))
-#
-# /* BOOST_PP_LIST_TRANSFORM_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# else
-# define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list)
-# define BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_LOGICAL_AND_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_AND_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/logical/bitand.hpp>
-#
-# /* BOOST_PP_AND */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
-# else
-# define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q)
-# define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
-# endif
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_BITAND_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_BITAND */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_I(x, y)
-# else
-# define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_OO((x, y))
-# define BOOST_PP_BITAND_OO(par) BOOST_PP_BITAND_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ ## x ## y
-# else
-# define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ID(BOOST_PP_BITAND_ ## x ## y)
-# define BOOST_PP_BITAND_ID(res) res
-# endif
-#
-# define BOOST_PP_BITAND_00 0
-# define BOOST_PP_BITAND_01 0
-# define BOOST_PP_BITAND_10 0
-# define BOOST_PP_BITAND_11 1
-#
-# endif
+++ /dev/null
-# /* 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_LOGICAL_BOOL_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_BOOL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_BOOL(x) BOOST_PP_BOOL_I(x)
-# else
-# define BOOST_PP_BOOL(x) BOOST_PP_BOOL_OO((x))
-# define BOOST_PP_BOOL_OO(par) BOOST_PP_BOOL_I ## par
-# endif
-#
-# define BOOST_PP_BOOL_I(x) BOOST_PP_BOOL_ ## x
-#
-# define BOOST_PP_BOOL_0 0
-# define BOOST_PP_BOOL_1 1
-# define BOOST_PP_BOOL_2 1
-# define BOOST_PP_BOOL_3 1
-# define BOOST_PP_BOOL_4 1
-# define BOOST_PP_BOOL_5 1
-# define BOOST_PP_BOOL_6 1
-# define BOOST_PP_BOOL_7 1
-# define BOOST_PP_BOOL_8 1
-# define BOOST_PP_BOOL_9 1
-# define BOOST_PP_BOOL_10 1
-# define BOOST_PP_BOOL_11 1
-# define BOOST_PP_BOOL_12 1
-# define BOOST_PP_BOOL_13 1
-# define BOOST_PP_BOOL_14 1
-# define BOOST_PP_BOOL_15 1
-# define BOOST_PP_BOOL_16 1
-# define BOOST_PP_BOOL_17 1
-# define BOOST_PP_BOOL_18 1
-# define BOOST_PP_BOOL_19 1
-# define BOOST_PP_BOOL_20 1
-# define BOOST_PP_BOOL_21 1
-# define BOOST_PP_BOOL_22 1
-# define BOOST_PP_BOOL_23 1
-# define BOOST_PP_BOOL_24 1
-# define BOOST_PP_BOOL_25 1
-# define BOOST_PP_BOOL_26 1
-# define BOOST_PP_BOOL_27 1
-# define BOOST_PP_BOOL_28 1
-# define BOOST_PP_BOOL_29 1
-# define BOOST_PP_BOOL_30 1
-# define BOOST_PP_BOOL_31 1
-# define BOOST_PP_BOOL_32 1
-# define BOOST_PP_BOOL_33 1
-# define BOOST_PP_BOOL_34 1
-# define BOOST_PP_BOOL_35 1
-# define BOOST_PP_BOOL_36 1
-# define BOOST_PP_BOOL_37 1
-# define BOOST_PP_BOOL_38 1
-# define BOOST_PP_BOOL_39 1
-# define BOOST_PP_BOOL_40 1
-# define BOOST_PP_BOOL_41 1
-# define BOOST_PP_BOOL_42 1
-# define BOOST_PP_BOOL_43 1
-# define BOOST_PP_BOOL_44 1
-# define BOOST_PP_BOOL_45 1
-# define BOOST_PP_BOOL_46 1
-# define BOOST_PP_BOOL_47 1
-# define BOOST_PP_BOOL_48 1
-# define BOOST_PP_BOOL_49 1
-# define BOOST_PP_BOOL_50 1
-# define BOOST_PP_BOOL_51 1
-# define BOOST_PP_BOOL_52 1
-# define BOOST_PP_BOOL_53 1
-# define BOOST_PP_BOOL_54 1
-# define BOOST_PP_BOOL_55 1
-# define BOOST_PP_BOOL_56 1
-# define BOOST_PP_BOOL_57 1
-# define BOOST_PP_BOOL_58 1
-# define BOOST_PP_BOOL_59 1
-# define BOOST_PP_BOOL_60 1
-# define BOOST_PP_BOOL_61 1
-# define BOOST_PP_BOOL_62 1
-# define BOOST_PP_BOOL_63 1
-# define BOOST_PP_BOOL_64 1
-# define BOOST_PP_BOOL_65 1
-# define BOOST_PP_BOOL_66 1
-# define BOOST_PP_BOOL_67 1
-# define BOOST_PP_BOOL_68 1
-# define BOOST_PP_BOOL_69 1
-# define BOOST_PP_BOOL_70 1
-# define BOOST_PP_BOOL_71 1
-# define BOOST_PP_BOOL_72 1
-# define BOOST_PP_BOOL_73 1
-# define BOOST_PP_BOOL_74 1
-# define BOOST_PP_BOOL_75 1
-# define BOOST_PP_BOOL_76 1
-# define BOOST_PP_BOOL_77 1
-# define BOOST_PP_BOOL_78 1
-# define BOOST_PP_BOOL_79 1
-# define BOOST_PP_BOOL_80 1
-# define BOOST_PP_BOOL_81 1
-# define BOOST_PP_BOOL_82 1
-# define BOOST_PP_BOOL_83 1
-# define BOOST_PP_BOOL_84 1
-# define BOOST_PP_BOOL_85 1
-# define BOOST_PP_BOOL_86 1
-# define BOOST_PP_BOOL_87 1
-# define BOOST_PP_BOOL_88 1
-# define BOOST_PP_BOOL_89 1
-# define BOOST_PP_BOOL_90 1
-# define BOOST_PP_BOOL_91 1
-# define BOOST_PP_BOOL_92 1
-# define BOOST_PP_BOOL_93 1
-# define BOOST_PP_BOOL_94 1
-# define BOOST_PP_BOOL_95 1
-# define BOOST_PP_BOOL_96 1
-# define BOOST_PP_BOOL_97 1
-# define BOOST_PP_BOOL_98 1
-# define BOOST_PP_BOOL_99 1
-# define BOOST_PP_BOOL_100 1
-# define BOOST_PP_BOOL_101 1
-# define BOOST_PP_BOOL_102 1
-# define BOOST_PP_BOOL_103 1
-# define BOOST_PP_BOOL_104 1
-# define BOOST_PP_BOOL_105 1
-# define BOOST_PP_BOOL_106 1
-# define BOOST_PP_BOOL_107 1
-# define BOOST_PP_BOOL_108 1
-# define BOOST_PP_BOOL_109 1
-# define BOOST_PP_BOOL_110 1
-# define BOOST_PP_BOOL_111 1
-# define BOOST_PP_BOOL_112 1
-# define BOOST_PP_BOOL_113 1
-# define BOOST_PP_BOOL_114 1
-# define BOOST_PP_BOOL_115 1
-# define BOOST_PP_BOOL_116 1
-# define BOOST_PP_BOOL_117 1
-# define BOOST_PP_BOOL_118 1
-# define BOOST_PP_BOOL_119 1
-# define BOOST_PP_BOOL_120 1
-# define BOOST_PP_BOOL_121 1
-# define BOOST_PP_BOOL_122 1
-# define BOOST_PP_BOOL_123 1
-# define BOOST_PP_BOOL_124 1
-# define BOOST_PP_BOOL_125 1
-# define BOOST_PP_BOOL_126 1
-# define BOOST_PP_BOOL_127 1
-# define BOOST_PP_BOOL_128 1
-# define BOOST_PP_BOOL_129 1
-# define BOOST_PP_BOOL_130 1
-# define BOOST_PP_BOOL_131 1
-# define BOOST_PP_BOOL_132 1
-# define BOOST_PP_BOOL_133 1
-# define BOOST_PP_BOOL_134 1
-# define BOOST_PP_BOOL_135 1
-# define BOOST_PP_BOOL_136 1
-# define BOOST_PP_BOOL_137 1
-# define BOOST_PP_BOOL_138 1
-# define BOOST_PP_BOOL_139 1
-# define BOOST_PP_BOOL_140 1
-# define BOOST_PP_BOOL_141 1
-# define BOOST_PP_BOOL_142 1
-# define BOOST_PP_BOOL_143 1
-# define BOOST_PP_BOOL_144 1
-# define BOOST_PP_BOOL_145 1
-# define BOOST_PP_BOOL_146 1
-# define BOOST_PP_BOOL_147 1
-# define BOOST_PP_BOOL_148 1
-# define BOOST_PP_BOOL_149 1
-# define BOOST_PP_BOOL_150 1
-# define BOOST_PP_BOOL_151 1
-# define BOOST_PP_BOOL_152 1
-# define BOOST_PP_BOOL_153 1
-# define BOOST_PP_BOOL_154 1
-# define BOOST_PP_BOOL_155 1
-# define BOOST_PP_BOOL_156 1
-# define BOOST_PP_BOOL_157 1
-# define BOOST_PP_BOOL_158 1
-# define BOOST_PP_BOOL_159 1
-# define BOOST_PP_BOOL_160 1
-# define BOOST_PP_BOOL_161 1
-# define BOOST_PP_BOOL_162 1
-# define BOOST_PP_BOOL_163 1
-# define BOOST_PP_BOOL_164 1
-# define BOOST_PP_BOOL_165 1
-# define BOOST_PP_BOOL_166 1
-# define BOOST_PP_BOOL_167 1
-# define BOOST_PP_BOOL_168 1
-# define BOOST_PP_BOOL_169 1
-# define BOOST_PP_BOOL_170 1
-# define BOOST_PP_BOOL_171 1
-# define BOOST_PP_BOOL_172 1
-# define BOOST_PP_BOOL_173 1
-# define BOOST_PP_BOOL_174 1
-# define BOOST_PP_BOOL_175 1
-# define BOOST_PP_BOOL_176 1
-# define BOOST_PP_BOOL_177 1
-# define BOOST_PP_BOOL_178 1
-# define BOOST_PP_BOOL_179 1
-# define BOOST_PP_BOOL_180 1
-# define BOOST_PP_BOOL_181 1
-# define BOOST_PP_BOOL_182 1
-# define BOOST_PP_BOOL_183 1
-# define BOOST_PP_BOOL_184 1
-# define BOOST_PP_BOOL_185 1
-# define BOOST_PP_BOOL_186 1
-# define BOOST_PP_BOOL_187 1
-# define BOOST_PP_BOOL_188 1
-# define BOOST_PP_BOOL_189 1
-# define BOOST_PP_BOOL_190 1
-# define BOOST_PP_BOOL_191 1
-# define BOOST_PP_BOOL_192 1
-# define BOOST_PP_BOOL_193 1
-# define BOOST_PP_BOOL_194 1
-# define BOOST_PP_BOOL_195 1
-# define BOOST_PP_BOOL_196 1
-# define BOOST_PP_BOOL_197 1
-# define BOOST_PP_BOOL_198 1
-# define BOOST_PP_BOOL_199 1
-# define BOOST_PP_BOOL_200 1
-# define BOOST_PP_BOOL_201 1
-# define BOOST_PP_BOOL_202 1
-# define BOOST_PP_BOOL_203 1
-# define BOOST_PP_BOOL_204 1
-# define BOOST_PP_BOOL_205 1
-# define BOOST_PP_BOOL_206 1
-# define BOOST_PP_BOOL_207 1
-# define BOOST_PP_BOOL_208 1
-# define BOOST_PP_BOOL_209 1
-# define BOOST_PP_BOOL_210 1
-# define BOOST_PP_BOOL_211 1
-# define BOOST_PP_BOOL_212 1
-# define BOOST_PP_BOOL_213 1
-# define BOOST_PP_BOOL_214 1
-# define BOOST_PP_BOOL_215 1
-# define BOOST_PP_BOOL_216 1
-# define BOOST_PP_BOOL_217 1
-# define BOOST_PP_BOOL_218 1
-# define BOOST_PP_BOOL_219 1
-# define BOOST_PP_BOOL_220 1
-# define BOOST_PP_BOOL_221 1
-# define BOOST_PP_BOOL_222 1
-# define BOOST_PP_BOOL_223 1
-# define BOOST_PP_BOOL_224 1
-# define BOOST_PP_BOOL_225 1
-# define BOOST_PP_BOOL_226 1
-# define BOOST_PP_BOOL_227 1
-# define BOOST_PP_BOOL_228 1
-# define BOOST_PP_BOOL_229 1
-# define BOOST_PP_BOOL_230 1
-# define BOOST_PP_BOOL_231 1
-# define BOOST_PP_BOOL_232 1
-# define BOOST_PP_BOOL_233 1
-# define BOOST_PP_BOOL_234 1
-# define BOOST_PP_BOOL_235 1
-# define BOOST_PP_BOOL_236 1
-# define BOOST_PP_BOOL_237 1
-# define BOOST_PP_BOOL_238 1
-# define BOOST_PP_BOOL_239 1
-# define BOOST_PP_BOOL_240 1
-# define BOOST_PP_BOOL_241 1
-# define BOOST_PP_BOOL_242 1
-# define BOOST_PP_BOOL_243 1
-# define BOOST_PP_BOOL_244 1
-# define BOOST_PP_BOOL_245 1
-# define BOOST_PP_BOOL_246 1
-# define BOOST_PP_BOOL_247 1
-# define BOOST_PP_BOOL_248 1
-# define BOOST_PP_BOOL_249 1
-# define BOOST_PP_BOOL_250 1
-# define BOOST_PP_BOOL_251 1
-# define BOOST_PP_BOOL_252 1
-# define BOOST_PP_BOOL_253 1
-# define BOOST_PP_BOOL_254 1
-# define BOOST_PP_BOOL_255 1
-# define BOOST_PP_BOOL_256 1
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_COMPL_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_COMPL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x)
-# else
-# define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x))
-# define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x
-# else
-# define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x)
-# define BOOST_PP_COMPL_ID(id) id
-# endif
-#
-# define BOOST_PP_COMPL_0 1
-# define BOOST_PP_COMPL_1 0
-#
-# endif
+++ /dev/null
-# /* 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_PUNCTUATION_COMMA_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
-#
-# /* BOOST_PP_COMMA */
-#
-# define BOOST_PP_COMMA() ,
-#
-# endif
+++ /dev/null
-# /* 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_PUNCTUATION_COMMA_IF_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/facilities/empty.hpp>
-# include <boost/preprocessor/punctuation/comma.hpp>
-#
-# /* BOOST_PP_COMMA_IF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)()
-# else
-# define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond)
-# define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)()
-# endif
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_REPEAT_HPP
-# define BOOST_PREPROCESSOR_REPEAT_HPP
-#
-# include <boost/preprocessor/repetition/repeat.hpp>
-#
-# endif
+++ /dev/null
-# /* 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
+++ /dev/null
-# /* 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_EDG_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_I(s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_I(s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_I(s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_I(s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_I(s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_I(s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_I(s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_I(s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_I(s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_I(s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_I(s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_I(s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_I(s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_I(s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_I(s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_I(s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_I(s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_I(s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_I(s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_I(s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_I(s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_I(s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_I(s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_I(s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_I(s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_I(s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_I(s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_I(s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_I(s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_I(s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_I(s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_I(s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_I(s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_I(s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_I(s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_I(s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_I(s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_I(s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_I(s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_I(s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_I(s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_I(s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_I(s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_I(s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_I(s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_I(s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_I(s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_I(s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_I(s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_I(s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_I(s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_I(s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_I(s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_I(s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_I(s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_I(s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_I(s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_I(s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_I(s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_I(s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_I(s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_I(s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_I(s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_I(s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_I(s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_I(s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_I(s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_I(s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_I(s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_I(s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_I(s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_I(s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_I(s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_I(s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_I(s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_I(s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_I(s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_I(s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_I(s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_I(s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_I(s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_I(s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_I(s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_I(s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_I(s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_I(s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_I(s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_I(s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_I(s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_I(s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_I(s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_I(s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_I(s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_I(s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_I(s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_I(s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_I(s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_I(s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_I(s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_I(s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_I(s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_I(s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_I(s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_I(s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_I(s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_I(s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_I(s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_I(s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_I(s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_I(s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_I(s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_I(s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_I(s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_I(s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_I(s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_I(s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_I(s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_I(s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_I(s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_I(s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_I(s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_I(s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_I(s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_I(s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_I(s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_I(s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_I(s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_I(s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_I(s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_I(s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_I(s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_I(s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_I(s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_I(s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_I(s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_I(s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_I(s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_I(s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_I(s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_I(s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_I(s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_I(s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_I(s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_I(s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_I(s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_I(s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_I(s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_I(s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_I(s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_I(s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_I(s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_I(s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_I(s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_I(s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_I(s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_I(s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_I(s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_I(s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_I(s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_I(s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_I(s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_I(s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_I(s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_I(s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_I(s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_I(s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_I(s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_I(s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_I(s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_I(s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_I(s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_I(s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_I(s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_I(s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_I(s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_I(s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_I(s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_I(s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_I(s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_I(s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_I(s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_I(s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_I(s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_I(s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_I(s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_I(s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_I(s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_I(s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_I(s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_I(s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_I(s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_I(s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_I(s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_I(s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_I(s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_I(s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_I(s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_I(s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_I(s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_I(s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_I(s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_I(s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_I(s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_I(s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_I(s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_I(s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_I(s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_I(s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_I(s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_I(s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_I(s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_I(s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_I(s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_I(s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_I(s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_I(s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_I(s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_I(s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_I(s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_I(s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_I(s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_I(s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_I(s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_I(s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_I(s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_I(s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_I(s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_I(s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_I(s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_I(s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_I(s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_I(s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_I(s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_I(s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_I(s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_I(s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_I(s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_I(s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_I(s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_I(s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_I(s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_I(s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_I(s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_I(s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_I(s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_I(s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_I(s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_I(s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_I(s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_I(s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_I(s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_I(s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_I(s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_I(s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_I(s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_I(s, p, o, m)
-#
-# define BOOST_PP_FOR_1_I(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
-# define BOOST_PP_FOR_2_I(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
-# define BOOST_PP_FOR_3_I(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
-# define BOOST_PP_FOR_4_I(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
-# define BOOST_PP_FOR_5_I(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
-# define BOOST_PP_FOR_6_I(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
-# define BOOST_PP_FOR_7_I(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
-# define BOOST_PP_FOR_8_I(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
-# define BOOST_PP_FOR_9_I(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
-# define BOOST_PP_FOR_10_I(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
-# define BOOST_PP_FOR_11_I(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
-# define BOOST_PP_FOR_12_I(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
-# define BOOST_PP_FOR_13_I(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
-# define BOOST_PP_FOR_14_I(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
-# define BOOST_PP_FOR_15_I(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
-# define BOOST_PP_FOR_16_I(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
-# define BOOST_PP_FOR_17_I(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
-# define BOOST_PP_FOR_18_I(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
-# define BOOST_PP_FOR_19_I(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
-# define BOOST_PP_FOR_20_I(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
-# define BOOST_PP_FOR_21_I(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
-# define BOOST_PP_FOR_22_I(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
-# define BOOST_PP_FOR_23_I(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
-# define BOOST_PP_FOR_24_I(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
-# define BOOST_PP_FOR_25_I(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
-# define BOOST_PP_FOR_26_I(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
-# define BOOST_PP_FOR_27_I(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
-# define BOOST_PP_FOR_28_I(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
-# define BOOST_PP_FOR_29_I(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
-# define BOOST_PP_FOR_30_I(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
-# define BOOST_PP_FOR_31_I(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
-# define BOOST_PP_FOR_32_I(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
-# define BOOST_PP_FOR_33_I(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
-# define BOOST_PP_FOR_34_I(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
-# define BOOST_PP_FOR_35_I(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
-# define BOOST_PP_FOR_36_I(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
-# define BOOST_PP_FOR_37_I(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
-# define BOOST_PP_FOR_38_I(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
-# define BOOST_PP_FOR_39_I(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
-# define BOOST_PP_FOR_40_I(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
-# define BOOST_PP_FOR_41_I(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
-# define BOOST_PP_FOR_42_I(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
-# define BOOST_PP_FOR_43_I(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
-# define BOOST_PP_FOR_44_I(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
-# define BOOST_PP_FOR_45_I(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
-# define BOOST_PP_FOR_46_I(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
-# define BOOST_PP_FOR_47_I(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
-# define BOOST_PP_FOR_48_I(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
-# define BOOST_PP_FOR_49_I(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
-# define BOOST_PP_FOR_50_I(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
-# define BOOST_PP_FOR_51_I(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
-# define BOOST_PP_FOR_52_I(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
-# define BOOST_PP_FOR_53_I(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
-# define BOOST_PP_FOR_54_I(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
-# define BOOST_PP_FOR_55_I(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
-# define BOOST_PP_FOR_56_I(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
-# define BOOST_PP_FOR_57_I(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
-# define BOOST_PP_FOR_58_I(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
-# define BOOST_PP_FOR_59_I(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
-# define BOOST_PP_FOR_60_I(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
-# define BOOST_PP_FOR_61_I(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
-# define BOOST_PP_FOR_62_I(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
-# define BOOST_PP_FOR_63_I(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
-# define BOOST_PP_FOR_64_I(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
-# define BOOST_PP_FOR_65_I(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
-# define BOOST_PP_FOR_66_I(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
-# define BOOST_PP_FOR_67_I(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
-# define BOOST_PP_FOR_68_I(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
-# define BOOST_PP_FOR_69_I(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
-# define BOOST_PP_FOR_70_I(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
-# define BOOST_PP_FOR_71_I(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
-# define BOOST_PP_FOR_72_I(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
-# define BOOST_PP_FOR_73_I(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
-# define BOOST_PP_FOR_74_I(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
-# define BOOST_PP_FOR_75_I(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
-# define BOOST_PP_FOR_76_I(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
-# define BOOST_PP_FOR_77_I(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
-# define BOOST_PP_FOR_78_I(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
-# define BOOST_PP_FOR_79_I(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
-# define BOOST_PP_FOR_80_I(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
-# define BOOST_PP_FOR_81_I(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
-# define BOOST_PP_FOR_82_I(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
-# define BOOST_PP_FOR_83_I(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
-# define BOOST_PP_FOR_84_I(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
-# define BOOST_PP_FOR_85_I(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
-# define BOOST_PP_FOR_86_I(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
-# define BOOST_PP_FOR_87_I(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
-# define BOOST_PP_FOR_88_I(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
-# define BOOST_PP_FOR_89_I(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
-# define BOOST_PP_FOR_90_I(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
-# define BOOST_PP_FOR_91_I(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
-# define BOOST_PP_FOR_92_I(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
-# define BOOST_PP_FOR_93_I(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
-# define BOOST_PP_FOR_94_I(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
-# define BOOST_PP_FOR_95_I(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
-# define BOOST_PP_FOR_96_I(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
-# define BOOST_PP_FOR_97_I(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
-# define BOOST_PP_FOR_98_I(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
-# define BOOST_PP_FOR_99_I(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
-# define BOOST_PP_FOR_100_I(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
-# define BOOST_PP_FOR_101_I(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
-# define BOOST_PP_FOR_102_I(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
-# define BOOST_PP_FOR_103_I(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
-# define BOOST_PP_FOR_104_I(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
-# define BOOST_PP_FOR_105_I(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
-# define BOOST_PP_FOR_106_I(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
-# define BOOST_PP_FOR_107_I(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
-# define BOOST_PP_FOR_108_I(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
-# define BOOST_PP_FOR_109_I(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
-# define BOOST_PP_FOR_110_I(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
-# define BOOST_PP_FOR_111_I(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
-# define BOOST_PP_FOR_112_I(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
-# define BOOST_PP_FOR_113_I(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
-# define BOOST_PP_FOR_114_I(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
-# define BOOST_PP_FOR_115_I(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
-# define BOOST_PP_FOR_116_I(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
-# define BOOST_PP_FOR_117_I(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
-# define BOOST_PP_FOR_118_I(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
-# define BOOST_PP_FOR_119_I(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
-# define BOOST_PP_FOR_120_I(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
-# define BOOST_PP_FOR_121_I(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
-# define BOOST_PP_FOR_122_I(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
-# define BOOST_PP_FOR_123_I(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
-# define BOOST_PP_FOR_124_I(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
-# define BOOST_PP_FOR_125_I(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
-# define BOOST_PP_FOR_126_I(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
-# define BOOST_PP_FOR_127_I(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
-# define BOOST_PP_FOR_128_I(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
-# define BOOST_PP_FOR_129_I(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
-# define BOOST_PP_FOR_130_I(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
-# define BOOST_PP_FOR_131_I(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
-# define BOOST_PP_FOR_132_I(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
-# define BOOST_PP_FOR_133_I(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
-# define BOOST_PP_FOR_134_I(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
-# define BOOST_PP_FOR_135_I(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
-# define BOOST_PP_FOR_136_I(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
-# define BOOST_PP_FOR_137_I(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
-# define BOOST_PP_FOR_138_I(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
-# define BOOST_PP_FOR_139_I(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
-# define BOOST_PP_FOR_140_I(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
-# define BOOST_PP_FOR_141_I(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
-# define BOOST_PP_FOR_142_I(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
-# define BOOST_PP_FOR_143_I(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
-# define BOOST_PP_FOR_144_I(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
-# define BOOST_PP_FOR_145_I(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
-# define BOOST_PP_FOR_146_I(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
-# define BOOST_PP_FOR_147_I(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
-# define BOOST_PP_FOR_148_I(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
-# define BOOST_PP_FOR_149_I(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
-# define BOOST_PP_FOR_150_I(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
-# define BOOST_PP_FOR_151_I(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
-# define BOOST_PP_FOR_152_I(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
-# define BOOST_PP_FOR_153_I(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
-# define BOOST_PP_FOR_154_I(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
-# define BOOST_PP_FOR_155_I(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
-# define BOOST_PP_FOR_156_I(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
-# define BOOST_PP_FOR_157_I(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
-# define BOOST_PP_FOR_158_I(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
-# define BOOST_PP_FOR_159_I(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
-# define BOOST_PP_FOR_160_I(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
-# define BOOST_PP_FOR_161_I(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
-# define BOOST_PP_FOR_162_I(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
-# define BOOST_PP_FOR_163_I(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
-# define BOOST_PP_FOR_164_I(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
-# define BOOST_PP_FOR_165_I(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
-# define BOOST_PP_FOR_166_I(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
-# define BOOST_PP_FOR_167_I(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
-# define BOOST_PP_FOR_168_I(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
-# define BOOST_PP_FOR_169_I(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
-# define BOOST_PP_FOR_170_I(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
-# define BOOST_PP_FOR_171_I(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
-# define BOOST_PP_FOR_172_I(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
-# define BOOST_PP_FOR_173_I(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
-# define BOOST_PP_FOR_174_I(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
-# define BOOST_PP_FOR_175_I(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
-# define BOOST_PP_FOR_176_I(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
-# define BOOST_PP_FOR_177_I(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
-# define BOOST_PP_FOR_178_I(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
-# define BOOST_PP_FOR_179_I(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
-# define BOOST_PP_FOR_180_I(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
-# define BOOST_PP_FOR_181_I(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
-# define BOOST_PP_FOR_182_I(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
-# define BOOST_PP_FOR_183_I(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
-# define BOOST_PP_FOR_184_I(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
-# define BOOST_PP_FOR_185_I(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
-# define BOOST_PP_FOR_186_I(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
-# define BOOST_PP_FOR_187_I(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
-# define BOOST_PP_FOR_188_I(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
-# define BOOST_PP_FOR_189_I(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
-# define BOOST_PP_FOR_190_I(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
-# define BOOST_PP_FOR_191_I(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
-# define BOOST_PP_FOR_192_I(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
-# define BOOST_PP_FOR_193_I(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
-# define BOOST_PP_FOR_194_I(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
-# define BOOST_PP_FOR_195_I(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
-# define BOOST_PP_FOR_196_I(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
-# define BOOST_PP_FOR_197_I(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
-# define BOOST_PP_FOR_198_I(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
-# define BOOST_PP_FOR_199_I(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
-# define BOOST_PP_FOR_200_I(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
-# define BOOST_PP_FOR_201_I(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
-# define BOOST_PP_FOR_202_I(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
-# define BOOST_PP_FOR_203_I(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
-# define BOOST_PP_FOR_204_I(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
-# define BOOST_PP_FOR_205_I(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
-# define BOOST_PP_FOR_206_I(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
-# define BOOST_PP_FOR_207_I(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
-# define BOOST_PP_FOR_208_I(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
-# define BOOST_PP_FOR_209_I(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
-# define BOOST_PP_FOR_210_I(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
-# define BOOST_PP_FOR_211_I(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
-# define BOOST_PP_FOR_212_I(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
-# define BOOST_PP_FOR_213_I(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
-# define BOOST_PP_FOR_214_I(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
-# define BOOST_PP_FOR_215_I(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
-# define BOOST_PP_FOR_216_I(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
-# define BOOST_PP_FOR_217_I(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
-# define BOOST_PP_FOR_218_I(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
-# define BOOST_PP_FOR_219_I(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
-# define BOOST_PP_FOR_220_I(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
-# define BOOST_PP_FOR_221_I(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
-# define BOOST_PP_FOR_222_I(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
-# define BOOST_PP_FOR_223_I(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
-# define BOOST_PP_FOR_224_I(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
-# define BOOST_PP_FOR_225_I(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
-# define BOOST_PP_FOR_226_I(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
-# define BOOST_PP_FOR_227_I(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
-# define BOOST_PP_FOR_228_I(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
-# define BOOST_PP_FOR_229_I(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
-# define BOOST_PP_FOR_230_I(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
-# define BOOST_PP_FOR_231_I(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
-# define BOOST_PP_FOR_232_I(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
-# define BOOST_PP_FOR_233_I(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
-# define BOOST_PP_FOR_234_I(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
-# define BOOST_PP_FOR_235_I(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
-# define BOOST_PP_FOR_236_I(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
-# define BOOST_PP_FOR_237_I(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
-# define BOOST_PP_FOR_238_I(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
-# define BOOST_PP_FOR_239_I(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
-# define BOOST_PP_FOR_240_I(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
-# define BOOST_PP_FOR_241_I(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
-# define BOOST_PP_FOR_242_I(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
-# define BOOST_PP_FOR_243_I(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
-# define BOOST_PP_FOR_244_I(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
-# define BOOST_PP_FOR_245_I(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
-# define BOOST_PP_FOR_246_I(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
-# define BOOST_PP_FOR_247_I(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
-# define BOOST_PP_FOR_248_I(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
-# define BOOST_PP_FOR_249_I(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
-# define BOOST_PP_FOR_250_I(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
-# define BOOST_PP_FOR_251_I(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
-# define BOOST_PP_FOR_252_I(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
-# define BOOST_PP_FOR_253_I(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
-# define BOOST_PP_FOR_254_I(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
-# define BOOST_PP_FOR_255_I(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
-# define BOOST_PP_FOR_256_I(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
-#
-# endif
+++ /dev/null
-# /* 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
+++ /dev/null
-# /* 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_MSVC_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
-#
-# endif
+++ /dev/null
-# /* 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_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_FOR_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-#
-# /* BOOST_PP_FOR */
-#
-# if 0
-# define BOOST_PP_FOR(state, pred, op, macro)
-# endif
-#
-# define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256))
-#
-# define BOOST_PP_FOR_P(n) BOOST_PP_CAT(BOOST_PP_FOR_CHECK_, BOOST_PP_FOR_ ## n(1, BOOST_PP_FOR_SR_P, BOOST_PP_FOR_SR_O, BOOST_PP_FOR_SR_M))
-#
-# define BOOST_PP_FOR_SR_P(r, s) s
-# define BOOST_PP_FOR_SR_O(r, s) 0
-# define BOOST_PP_FOR_SR_M(r, s) BOOST_PP_NIL
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# include <boost/preprocessor/repetition/detail/edg/for.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# include <boost/preprocessor/repetition/detail/msvc/for.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-# include <boost/preprocessor/repetition/detail/dmc/for.hpp>
-# else
-# include <boost/preprocessor/repetition/detail/for.hpp>
-# endif
-#
-# define BOOST_PP_FOR_257(s, p, o, m) BOOST_PP_ERROR(0x0002)
-#
-# define BOOST_PP_FOR_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_1(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_2(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_3(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_4(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_5(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_6(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_7(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_8(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_9(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_10(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_11(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_12(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_13(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_14(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_15(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_16(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_17(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_18(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_19(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_20(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_21(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_22(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_23(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_24(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_25(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_26(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_27(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_28(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_29(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_30(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_31(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_32(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_33(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_34(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_35(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_36(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_37(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_38(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_39(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_40(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_41(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_42(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_43(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_44(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_45(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_46(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_47(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_48(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_49(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_50(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_51(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_52(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_53(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_54(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_55(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_56(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_57(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_58(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_59(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_60(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_61(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_62(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_63(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_64(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_65(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_66(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_67(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_68(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_69(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_70(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_71(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_72(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_73(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_74(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_75(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_76(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_77(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_78(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_79(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_80(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_81(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_82(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_83(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_84(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_85(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_86(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_87(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_88(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_89(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_90(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_91(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_92(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_93(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_94(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_95(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_96(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_97(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_98(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_99(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_100(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_101(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_102(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_103(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_104(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_105(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_106(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_107(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_108(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_109(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_110(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_111(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_112(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_113(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_114(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_115(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_116(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_117(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_118(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_119(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_120(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_121(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_122(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_123(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_124(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_125(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_126(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_127(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_128(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_129(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_130(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_131(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_132(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_133(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_134(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_135(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_136(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_137(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_138(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_139(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_140(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_141(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_142(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_143(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_144(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_145(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_146(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_147(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_148(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_149(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_150(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_151(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_152(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_153(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_154(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_155(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_156(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_157(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_158(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_159(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_160(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_161(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_162(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_163(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_164(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_165(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_166(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_167(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_168(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_169(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_170(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_171(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_172(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_173(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_174(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_175(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_176(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_177(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_178(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_179(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_180(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_181(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_182(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_183(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_184(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_185(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_186(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_187(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_188(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_189(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_190(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_191(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_192(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_193(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_194(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_195(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_196(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_197(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_198(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_199(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_200(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_201(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_202(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_203(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_204(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_205(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_206(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_207(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_208(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_209(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_210(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_211(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_212(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_213(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_214(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_215(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_216(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_217(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_218(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_219(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_220(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_221(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_222(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_223(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_224(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_225(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_226(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_227(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_228(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_229(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_230(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_231(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_232(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_233(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_234(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_235(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_236(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_237(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_238(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_239(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_240(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_241(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_242(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_243(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_244(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_245(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_246(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_247(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_248(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_249(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_250(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_251(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_252(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_253(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_254(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_255(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_256(s, p, o, m) 0
-#
-# endif
+++ /dev/null
-# /* 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_REPEAT_HPP
-# define BOOST_PREPROCESSOR_REPETITION_REPEAT_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/tuple/eat.hpp>
-#
-# /* BOOST_PP_REPEAT */
-#
-# if 0
-# define BOOST_PP_REPEAT(count, macro, data)
-# endif
-#
-# define BOOST_PP_REPEAT BOOST_PP_CAT(BOOST_PP_REPEAT_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# define BOOST_PP_REPEAT_P(n) BOOST_PP_CAT(BOOST_PP_REPEAT_CHECK_, BOOST_PP_REPEAT_ ## n(1, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3, BOOST_PP_NIL))
-#
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_NIL 1
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_1(c, m, d) 0
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_2(c, m, d) 0
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_3(c, m, d) 0
-#
-# define BOOST_PP_REPEAT_1(c, m, d) BOOST_PP_REPEAT_1_I(c, m, d)
-# define BOOST_PP_REPEAT_2(c, m, d) BOOST_PP_REPEAT_2_I(c, m, d)
-# define BOOST_PP_REPEAT_3(c, m, d) BOOST_PP_REPEAT_3_I(c, m, d)
-# define BOOST_PP_REPEAT_4(c, m, d) BOOST_PP_ERROR(0x0003)
-#
-# define BOOST_PP_REPEAT_1_I(c, m, d) BOOST_PP_REPEAT_1_ ## c(m, d)
-# define BOOST_PP_REPEAT_2_I(c, m, d) BOOST_PP_REPEAT_2_ ## c(m, d)
-# define BOOST_PP_REPEAT_3_I(c, m, d) BOOST_PP_REPEAT_3_ ## c(m, d)
-#
-# define BOOST_PP_REPEAT_1ST BOOST_PP_REPEAT_1
-# define BOOST_PP_REPEAT_2ND BOOST_PP_REPEAT_2
-# define BOOST_PP_REPEAT_3RD BOOST_PP_REPEAT_3
-#
-# define BOOST_PP_REPEAT_1_0(m, d)
-# define BOOST_PP_REPEAT_1_1(m, d) m(2, 0, d)
-# define BOOST_PP_REPEAT_1_2(m, d) BOOST_PP_REPEAT_1_1(m, d) m(2, 1, d)
-# define BOOST_PP_REPEAT_1_3(m, d) BOOST_PP_REPEAT_1_2(m, d) m(2, 2, d)
-# define BOOST_PP_REPEAT_1_4(m, d) BOOST_PP_REPEAT_1_3(m, d) m(2, 3, d)
-# define BOOST_PP_REPEAT_1_5(m, d) BOOST_PP_REPEAT_1_4(m, d) m(2, 4, d)
-# define BOOST_PP_REPEAT_1_6(m, d) BOOST_PP_REPEAT_1_5(m, d) m(2, 5, d)
-# define BOOST_PP_REPEAT_1_7(m, d) BOOST_PP_REPEAT_1_6(m, d) m(2, 6, d)
-# define BOOST_PP_REPEAT_1_8(m, d) BOOST_PP_REPEAT_1_7(m, d) m(2, 7, d)
-# define BOOST_PP_REPEAT_1_9(m, d) BOOST_PP_REPEAT_1_8(m, d) m(2, 8, d)
-# define BOOST_PP_REPEAT_1_10(m, d) BOOST_PP_REPEAT_1_9(m, d) m(2, 9, d)
-# define BOOST_PP_REPEAT_1_11(m, d) BOOST_PP_REPEAT_1_10(m, d) m(2, 10, d)
-# define BOOST_PP_REPEAT_1_12(m, d) BOOST_PP_REPEAT_1_11(m, d) m(2, 11, d)
-# define BOOST_PP_REPEAT_1_13(m, d) BOOST_PP_REPEAT_1_12(m, d) m(2, 12, d)
-# define BOOST_PP_REPEAT_1_14(m, d) BOOST_PP_REPEAT_1_13(m, d) m(2, 13, d)
-# define BOOST_PP_REPEAT_1_15(m, d) BOOST_PP_REPEAT_1_14(m, d) m(2, 14, d)
-# define BOOST_PP_REPEAT_1_16(m, d) BOOST_PP_REPEAT_1_15(m, d) m(2, 15, d)
-# define BOOST_PP_REPEAT_1_17(m, d) BOOST_PP_REPEAT_1_16(m, d) m(2, 16, d)
-# define BOOST_PP_REPEAT_1_18(m, d) BOOST_PP_REPEAT_1_17(m, d) m(2, 17, d)
-# define BOOST_PP_REPEAT_1_19(m, d) BOOST_PP_REPEAT_1_18(m, d) m(2, 18, d)
-# define BOOST_PP_REPEAT_1_20(m, d) BOOST_PP_REPEAT_1_19(m, d) m(2, 19, d)
-# define BOOST_PP_REPEAT_1_21(m, d) BOOST_PP_REPEAT_1_20(m, d) m(2, 20, d)
-# define BOOST_PP_REPEAT_1_22(m, d) BOOST_PP_REPEAT_1_21(m, d) m(2, 21, d)
-# define BOOST_PP_REPEAT_1_23(m, d) BOOST_PP_REPEAT_1_22(m, d) m(2, 22, d)
-# define BOOST_PP_REPEAT_1_24(m, d) BOOST_PP_REPEAT_1_23(m, d) m(2, 23, d)
-# define BOOST_PP_REPEAT_1_25(m, d) BOOST_PP_REPEAT_1_24(m, d) m(2, 24, d)
-# define BOOST_PP_REPEAT_1_26(m, d) BOOST_PP_REPEAT_1_25(m, d) m(2, 25, d)
-# define BOOST_PP_REPEAT_1_27(m, d) BOOST_PP_REPEAT_1_26(m, d) m(2, 26, d)
-# define BOOST_PP_REPEAT_1_28(m, d) BOOST_PP_REPEAT_1_27(m, d) m(2, 27, d)
-# define BOOST_PP_REPEAT_1_29(m, d) BOOST_PP_REPEAT_1_28(m, d) m(2, 28, d)
-# define BOOST_PP_REPEAT_1_30(m, d) BOOST_PP_REPEAT_1_29(m, d) m(2, 29, d)
-# define BOOST_PP_REPEAT_1_31(m, d) BOOST_PP_REPEAT_1_30(m, d) m(2, 30, d)
-# define BOOST_PP_REPEAT_1_32(m, d) BOOST_PP_REPEAT_1_31(m, d) m(2, 31, d)
-# define BOOST_PP_REPEAT_1_33(m, d) BOOST_PP_REPEAT_1_32(m, d) m(2, 32, d)
-# define BOOST_PP_REPEAT_1_34(m, d) BOOST_PP_REPEAT_1_33(m, d) m(2, 33, d)
-# define BOOST_PP_REPEAT_1_35(m, d) BOOST_PP_REPEAT_1_34(m, d) m(2, 34, d)
-# define BOOST_PP_REPEAT_1_36(m, d) BOOST_PP_REPEAT_1_35(m, d) m(2, 35, d)
-# define BOOST_PP_REPEAT_1_37(m, d) BOOST_PP_REPEAT_1_36(m, d) m(2, 36, d)
-# define BOOST_PP_REPEAT_1_38(m, d) BOOST_PP_REPEAT_1_37(m, d) m(2, 37, d)
-# define BOOST_PP_REPEAT_1_39(m, d) BOOST_PP_REPEAT_1_38(m, d) m(2, 38, d)
-# define BOOST_PP_REPEAT_1_40(m, d) BOOST_PP_REPEAT_1_39(m, d) m(2, 39, d)
-# define BOOST_PP_REPEAT_1_41(m, d) BOOST_PP_REPEAT_1_40(m, d) m(2, 40, d)
-# define BOOST_PP_REPEAT_1_42(m, d) BOOST_PP_REPEAT_1_41(m, d) m(2, 41, d)
-# define BOOST_PP_REPEAT_1_43(m, d) BOOST_PP_REPEAT_1_42(m, d) m(2, 42, d)
-# define BOOST_PP_REPEAT_1_44(m, d) BOOST_PP_REPEAT_1_43(m, d) m(2, 43, d)
-# define BOOST_PP_REPEAT_1_45(m, d) BOOST_PP_REPEAT_1_44(m, d) m(2, 44, d)
-# define BOOST_PP_REPEAT_1_46(m, d) BOOST_PP_REPEAT_1_45(m, d) m(2, 45, d)
-# define BOOST_PP_REPEAT_1_47(m, d) BOOST_PP_REPEAT_1_46(m, d) m(2, 46, d)
-# define BOOST_PP_REPEAT_1_48(m, d) BOOST_PP_REPEAT_1_47(m, d) m(2, 47, d)
-# define BOOST_PP_REPEAT_1_49(m, d) BOOST_PP_REPEAT_1_48(m, d) m(2, 48, d)
-# define BOOST_PP_REPEAT_1_50(m, d) BOOST_PP_REPEAT_1_49(m, d) m(2, 49, d)
-# define BOOST_PP_REPEAT_1_51(m, d) BOOST_PP_REPEAT_1_50(m, d) m(2, 50, d)
-# define BOOST_PP_REPEAT_1_52(m, d) BOOST_PP_REPEAT_1_51(m, d) m(2, 51, d)
-# define BOOST_PP_REPEAT_1_53(m, d) BOOST_PP_REPEAT_1_52(m, d) m(2, 52, d)
-# define BOOST_PP_REPEAT_1_54(m, d) BOOST_PP_REPEAT_1_53(m, d) m(2, 53, d)
-# define BOOST_PP_REPEAT_1_55(m, d) BOOST_PP_REPEAT_1_54(m, d) m(2, 54, d)
-# define BOOST_PP_REPEAT_1_56(m, d) BOOST_PP_REPEAT_1_55(m, d) m(2, 55, d)
-# define BOOST_PP_REPEAT_1_57(m, d) BOOST_PP_REPEAT_1_56(m, d) m(2, 56, d)
-# define BOOST_PP_REPEAT_1_58(m, d) BOOST_PP_REPEAT_1_57(m, d) m(2, 57, d)
-# define BOOST_PP_REPEAT_1_59(m, d) BOOST_PP_REPEAT_1_58(m, d) m(2, 58, d)
-# define BOOST_PP_REPEAT_1_60(m, d) BOOST_PP_REPEAT_1_59(m, d) m(2, 59, d)
-# define BOOST_PP_REPEAT_1_61(m, d) BOOST_PP_REPEAT_1_60(m, d) m(2, 60, d)
-# define BOOST_PP_REPEAT_1_62(m, d) BOOST_PP_REPEAT_1_61(m, d) m(2, 61, d)
-# define BOOST_PP_REPEAT_1_63(m, d) BOOST_PP_REPEAT_1_62(m, d) m(2, 62, d)
-# define BOOST_PP_REPEAT_1_64(m, d) BOOST_PP_REPEAT_1_63(m, d) m(2, 63, d)
-# define BOOST_PP_REPEAT_1_65(m, d) BOOST_PP_REPEAT_1_64(m, d) m(2, 64, d)
-# define BOOST_PP_REPEAT_1_66(m, d) BOOST_PP_REPEAT_1_65(m, d) m(2, 65, d)
-# define BOOST_PP_REPEAT_1_67(m, d) BOOST_PP_REPEAT_1_66(m, d) m(2, 66, d)
-# define BOOST_PP_REPEAT_1_68(m, d) BOOST_PP_REPEAT_1_67(m, d) m(2, 67, d)
-# define BOOST_PP_REPEAT_1_69(m, d) BOOST_PP_REPEAT_1_68(m, d) m(2, 68, d)
-# define BOOST_PP_REPEAT_1_70(m, d) BOOST_PP_REPEAT_1_69(m, d) m(2, 69, d)
-# define BOOST_PP_REPEAT_1_71(m, d) BOOST_PP_REPEAT_1_70(m, d) m(2, 70, d)
-# define BOOST_PP_REPEAT_1_72(m, d) BOOST_PP_REPEAT_1_71(m, d) m(2, 71, d)
-# define BOOST_PP_REPEAT_1_73(m, d) BOOST_PP_REPEAT_1_72(m, d) m(2, 72, d)
-# define BOOST_PP_REPEAT_1_74(m, d) BOOST_PP_REPEAT_1_73(m, d) m(2, 73, d)
-# define BOOST_PP_REPEAT_1_75(m, d) BOOST_PP_REPEAT_1_74(m, d) m(2, 74, d)
-# define BOOST_PP_REPEAT_1_76(m, d) BOOST_PP_REPEAT_1_75(m, d) m(2, 75, d)
-# define BOOST_PP_REPEAT_1_77(m, d) BOOST_PP_REPEAT_1_76(m, d) m(2, 76, d)
-# define BOOST_PP_REPEAT_1_78(m, d) BOOST_PP_REPEAT_1_77(m, d) m(2, 77, d)
-# define BOOST_PP_REPEAT_1_79(m, d) BOOST_PP_REPEAT_1_78(m, d) m(2, 78, d)
-# define BOOST_PP_REPEAT_1_80(m, d) BOOST_PP_REPEAT_1_79(m, d) m(2, 79, d)
-# define BOOST_PP_REPEAT_1_81(m, d) BOOST_PP_REPEAT_1_80(m, d) m(2, 80, d)
-# define BOOST_PP_REPEAT_1_82(m, d) BOOST_PP_REPEAT_1_81(m, d) m(2, 81, d)
-# define BOOST_PP_REPEAT_1_83(m, d) BOOST_PP_REPEAT_1_82(m, d) m(2, 82, d)
-# define BOOST_PP_REPEAT_1_84(m, d) BOOST_PP_REPEAT_1_83(m, d) m(2, 83, d)
-# define BOOST_PP_REPEAT_1_85(m, d) BOOST_PP_REPEAT_1_84(m, d) m(2, 84, d)
-# define BOOST_PP_REPEAT_1_86(m, d) BOOST_PP_REPEAT_1_85(m, d) m(2, 85, d)
-# define BOOST_PP_REPEAT_1_87(m, d) BOOST_PP_REPEAT_1_86(m, d) m(2, 86, d)
-# define BOOST_PP_REPEAT_1_88(m, d) BOOST_PP_REPEAT_1_87(m, d) m(2, 87, d)
-# define BOOST_PP_REPEAT_1_89(m, d) BOOST_PP_REPEAT_1_88(m, d) m(2, 88, d)
-# define BOOST_PP_REPEAT_1_90(m, d) BOOST_PP_REPEAT_1_89(m, d) m(2, 89, d)
-# define BOOST_PP_REPEAT_1_91(m, d) BOOST_PP_REPEAT_1_90(m, d) m(2, 90, d)
-# define BOOST_PP_REPEAT_1_92(m, d) BOOST_PP_REPEAT_1_91(m, d) m(2, 91, d)
-# define BOOST_PP_REPEAT_1_93(m, d) BOOST_PP_REPEAT_1_92(m, d) m(2, 92, d)
-# define BOOST_PP_REPEAT_1_94(m, d) BOOST_PP_REPEAT_1_93(m, d) m(2, 93, d)
-# define BOOST_PP_REPEAT_1_95(m, d) BOOST_PP_REPEAT_1_94(m, d) m(2, 94, d)
-# define BOOST_PP_REPEAT_1_96(m, d) BOOST_PP_REPEAT_1_95(m, d) m(2, 95, d)
-# define BOOST_PP_REPEAT_1_97(m, d) BOOST_PP_REPEAT_1_96(m, d) m(2, 96, d)
-# define BOOST_PP_REPEAT_1_98(m, d) BOOST_PP_REPEAT_1_97(m, d) m(2, 97, d)
-# define BOOST_PP_REPEAT_1_99(m, d) BOOST_PP_REPEAT_1_98(m, d) m(2, 98, d)
-# define BOOST_PP_REPEAT_1_100(m, d) BOOST_PP_REPEAT_1_99(m, d) m(2, 99, d)
-# define BOOST_PP_REPEAT_1_101(m, d) BOOST_PP_REPEAT_1_100(m, d) m(2, 100, d)
-# define BOOST_PP_REPEAT_1_102(m, d) BOOST_PP_REPEAT_1_101(m, d) m(2, 101, d)
-# define BOOST_PP_REPEAT_1_103(m, d) BOOST_PP_REPEAT_1_102(m, d) m(2, 102, d)
-# define BOOST_PP_REPEAT_1_104(m, d) BOOST_PP_REPEAT_1_103(m, d) m(2, 103, d)
-# define BOOST_PP_REPEAT_1_105(m, d) BOOST_PP_REPEAT_1_104(m, d) m(2, 104, d)
-# define BOOST_PP_REPEAT_1_106(m, d) BOOST_PP_REPEAT_1_105(m, d) m(2, 105, d)
-# define BOOST_PP_REPEAT_1_107(m, d) BOOST_PP_REPEAT_1_106(m, d) m(2, 106, d)
-# define BOOST_PP_REPEAT_1_108(m, d) BOOST_PP_REPEAT_1_107(m, d) m(2, 107, d)
-# define BOOST_PP_REPEAT_1_109(m, d) BOOST_PP_REPEAT_1_108(m, d) m(2, 108, d)
-# define BOOST_PP_REPEAT_1_110(m, d) BOOST_PP_REPEAT_1_109(m, d) m(2, 109, d)
-# define BOOST_PP_REPEAT_1_111(m, d) BOOST_PP_REPEAT_1_110(m, d) m(2, 110, d)
-# define BOOST_PP_REPEAT_1_112(m, d) BOOST_PP_REPEAT_1_111(m, d) m(2, 111, d)
-# define BOOST_PP_REPEAT_1_113(m, d) BOOST_PP_REPEAT_1_112(m, d) m(2, 112, d)
-# define BOOST_PP_REPEAT_1_114(m, d) BOOST_PP_REPEAT_1_113(m, d) m(2, 113, d)
-# define BOOST_PP_REPEAT_1_115(m, d) BOOST_PP_REPEAT_1_114(m, d) m(2, 114, d)
-# define BOOST_PP_REPEAT_1_116(m, d) BOOST_PP_REPEAT_1_115(m, d) m(2, 115, d)
-# define BOOST_PP_REPEAT_1_117(m, d) BOOST_PP_REPEAT_1_116(m, d) m(2, 116, d)
-# define BOOST_PP_REPEAT_1_118(m, d) BOOST_PP_REPEAT_1_117(m, d) m(2, 117, d)
-# define BOOST_PP_REPEAT_1_119(m, d) BOOST_PP_REPEAT_1_118(m, d) m(2, 118, d)
-# define BOOST_PP_REPEAT_1_120(m, d) BOOST_PP_REPEAT_1_119(m, d) m(2, 119, d)
-# define BOOST_PP_REPEAT_1_121(m, d) BOOST_PP_REPEAT_1_120(m, d) m(2, 120, d)
-# define BOOST_PP_REPEAT_1_122(m, d) BOOST_PP_REPEAT_1_121(m, d) m(2, 121, d)
-# define BOOST_PP_REPEAT_1_123(m, d) BOOST_PP_REPEAT_1_122(m, d) m(2, 122, d)
-# define BOOST_PP_REPEAT_1_124(m, d) BOOST_PP_REPEAT_1_123(m, d) m(2, 123, d)
-# define BOOST_PP_REPEAT_1_125(m, d) BOOST_PP_REPEAT_1_124(m, d) m(2, 124, d)
-# define BOOST_PP_REPEAT_1_126(m, d) BOOST_PP_REPEAT_1_125(m, d) m(2, 125, d)
-# define BOOST_PP_REPEAT_1_127(m, d) BOOST_PP_REPEAT_1_126(m, d) m(2, 126, d)
-# define BOOST_PP_REPEAT_1_128(m, d) BOOST_PP_REPEAT_1_127(m, d) m(2, 127, d)
-# define BOOST_PP_REPEAT_1_129(m, d) BOOST_PP_REPEAT_1_128(m, d) m(2, 128, d)
-# define BOOST_PP_REPEAT_1_130(m, d) BOOST_PP_REPEAT_1_129(m, d) m(2, 129, d)
-# define BOOST_PP_REPEAT_1_131(m, d) BOOST_PP_REPEAT_1_130(m, d) m(2, 130, d)
-# define BOOST_PP_REPEAT_1_132(m, d) BOOST_PP_REPEAT_1_131(m, d) m(2, 131, d)
-# define BOOST_PP_REPEAT_1_133(m, d) BOOST_PP_REPEAT_1_132(m, d) m(2, 132, d)
-# define BOOST_PP_REPEAT_1_134(m, d) BOOST_PP_REPEAT_1_133(m, d) m(2, 133, d)
-# define BOOST_PP_REPEAT_1_135(m, d) BOOST_PP_REPEAT_1_134(m, d) m(2, 134, d)
-# define BOOST_PP_REPEAT_1_136(m, d) BOOST_PP_REPEAT_1_135(m, d) m(2, 135, d)
-# define BOOST_PP_REPEAT_1_137(m, d) BOOST_PP_REPEAT_1_136(m, d) m(2, 136, d)
-# define BOOST_PP_REPEAT_1_138(m, d) BOOST_PP_REPEAT_1_137(m, d) m(2, 137, d)
-# define BOOST_PP_REPEAT_1_139(m, d) BOOST_PP_REPEAT_1_138(m, d) m(2, 138, d)
-# define BOOST_PP_REPEAT_1_140(m, d) BOOST_PP_REPEAT_1_139(m, d) m(2, 139, d)
-# define BOOST_PP_REPEAT_1_141(m, d) BOOST_PP_REPEAT_1_140(m, d) m(2, 140, d)
-# define BOOST_PP_REPEAT_1_142(m, d) BOOST_PP_REPEAT_1_141(m, d) m(2, 141, d)
-# define BOOST_PP_REPEAT_1_143(m, d) BOOST_PP_REPEAT_1_142(m, d) m(2, 142, d)
-# define BOOST_PP_REPEAT_1_144(m, d) BOOST_PP_REPEAT_1_143(m, d) m(2, 143, d)
-# define BOOST_PP_REPEAT_1_145(m, d) BOOST_PP_REPEAT_1_144(m, d) m(2, 144, d)
-# define BOOST_PP_REPEAT_1_146(m, d) BOOST_PP_REPEAT_1_145(m, d) m(2, 145, d)
-# define BOOST_PP_REPEAT_1_147(m, d) BOOST_PP_REPEAT_1_146(m, d) m(2, 146, d)
-# define BOOST_PP_REPEAT_1_148(m, d) BOOST_PP_REPEAT_1_147(m, d) m(2, 147, d)
-# define BOOST_PP_REPEAT_1_149(m, d) BOOST_PP_REPEAT_1_148(m, d) m(2, 148, d)
-# define BOOST_PP_REPEAT_1_150(m, d) BOOST_PP_REPEAT_1_149(m, d) m(2, 149, d)
-# define BOOST_PP_REPEAT_1_151(m, d) BOOST_PP_REPEAT_1_150(m, d) m(2, 150, d)
-# define BOOST_PP_REPEAT_1_152(m, d) BOOST_PP_REPEAT_1_151(m, d) m(2, 151, d)
-# define BOOST_PP_REPEAT_1_153(m, d) BOOST_PP_REPEAT_1_152(m, d) m(2, 152, d)
-# define BOOST_PP_REPEAT_1_154(m, d) BOOST_PP_REPEAT_1_153(m, d) m(2, 153, d)
-# define BOOST_PP_REPEAT_1_155(m, d) BOOST_PP_REPEAT_1_154(m, d) m(2, 154, d)
-# define BOOST_PP_REPEAT_1_156(m, d) BOOST_PP_REPEAT_1_155(m, d) m(2, 155, d)
-# define BOOST_PP_REPEAT_1_157(m, d) BOOST_PP_REPEAT_1_156(m, d) m(2, 156, d)
-# define BOOST_PP_REPEAT_1_158(m, d) BOOST_PP_REPEAT_1_157(m, d) m(2, 157, d)
-# define BOOST_PP_REPEAT_1_159(m, d) BOOST_PP_REPEAT_1_158(m, d) m(2, 158, d)
-# define BOOST_PP_REPEAT_1_160(m, d) BOOST_PP_REPEAT_1_159(m, d) m(2, 159, d)
-# define BOOST_PP_REPEAT_1_161(m, d) BOOST_PP_REPEAT_1_160(m, d) m(2, 160, d)
-# define BOOST_PP_REPEAT_1_162(m, d) BOOST_PP_REPEAT_1_161(m, d) m(2, 161, d)
-# define BOOST_PP_REPEAT_1_163(m, d) BOOST_PP_REPEAT_1_162(m, d) m(2, 162, d)
-# define BOOST_PP_REPEAT_1_164(m, d) BOOST_PP_REPEAT_1_163(m, d) m(2, 163, d)
-# define BOOST_PP_REPEAT_1_165(m, d) BOOST_PP_REPEAT_1_164(m, d) m(2, 164, d)
-# define BOOST_PP_REPEAT_1_166(m, d) BOOST_PP_REPEAT_1_165(m, d) m(2, 165, d)
-# define BOOST_PP_REPEAT_1_167(m, d) BOOST_PP_REPEAT_1_166(m, d) m(2, 166, d)
-# define BOOST_PP_REPEAT_1_168(m, d) BOOST_PP_REPEAT_1_167(m, d) m(2, 167, d)
-# define BOOST_PP_REPEAT_1_169(m, d) BOOST_PP_REPEAT_1_168(m, d) m(2, 168, d)
-# define BOOST_PP_REPEAT_1_170(m, d) BOOST_PP_REPEAT_1_169(m, d) m(2, 169, d)
-# define BOOST_PP_REPEAT_1_171(m, d) BOOST_PP_REPEAT_1_170(m, d) m(2, 170, d)
-# define BOOST_PP_REPEAT_1_172(m, d) BOOST_PP_REPEAT_1_171(m, d) m(2, 171, d)
-# define BOOST_PP_REPEAT_1_173(m, d) BOOST_PP_REPEAT_1_172(m, d) m(2, 172, d)
-# define BOOST_PP_REPEAT_1_174(m, d) BOOST_PP_REPEAT_1_173(m, d) m(2, 173, d)
-# define BOOST_PP_REPEAT_1_175(m, d) BOOST_PP_REPEAT_1_174(m, d) m(2, 174, d)
-# define BOOST_PP_REPEAT_1_176(m, d) BOOST_PP_REPEAT_1_175(m, d) m(2, 175, d)
-# define BOOST_PP_REPEAT_1_177(m, d) BOOST_PP_REPEAT_1_176(m, d) m(2, 176, d)
-# define BOOST_PP_REPEAT_1_178(m, d) BOOST_PP_REPEAT_1_177(m, d) m(2, 177, d)
-# define BOOST_PP_REPEAT_1_179(m, d) BOOST_PP_REPEAT_1_178(m, d) m(2, 178, d)
-# define BOOST_PP_REPEAT_1_180(m, d) BOOST_PP_REPEAT_1_179(m, d) m(2, 179, d)
-# define BOOST_PP_REPEAT_1_181(m, d) BOOST_PP_REPEAT_1_180(m, d) m(2, 180, d)
-# define BOOST_PP_REPEAT_1_182(m, d) BOOST_PP_REPEAT_1_181(m, d) m(2, 181, d)
-# define BOOST_PP_REPEAT_1_183(m, d) BOOST_PP_REPEAT_1_182(m, d) m(2, 182, d)
-# define BOOST_PP_REPEAT_1_184(m, d) BOOST_PP_REPEAT_1_183(m, d) m(2, 183, d)
-# define BOOST_PP_REPEAT_1_185(m, d) BOOST_PP_REPEAT_1_184(m, d) m(2, 184, d)
-# define BOOST_PP_REPEAT_1_186(m, d) BOOST_PP_REPEAT_1_185(m, d) m(2, 185, d)
-# define BOOST_PP_REPEAT_1_187(m, d) BOOST_PP_REPEAT_1_186(m, d) m(2, 186, d)
-# define BOOST_PP_REPEAT_1_188(m, d) BOOST_PP_REPEAT_1_187(m, d) m(2, 187, d)
-# define BOOST_PP_REPEAT_1_189(m, d) BOOST_PP_REPEAT_1_188(m, d) m(2, 188, d)
-# define BOOST_PP_REPEAT_1_190(m, d) BOOST_PP_REPEAT_1_189(m, d) m(2, 189, d)
-# define BOOST_PP_REPEAT_1_191(m, d) BOOST_PP_REPEAT_1_190(m, d) m(2, 190, d)
-# define BOOST_PP_REPEAT_1_192(m, d) BOOST_PP_REPEAT_1_191(m, d) m(2, 191, d)
-# define BOOST_PP_REPEAT_1_193(m, d) BOOST_PP_REPEAT_1_192(m, d) m(2, 192, d)
-# define BOOST_PP_REPEAT_1_194(m, d) BOOST_PP_REPEAT_1_193(m, d) m(2, 193, d)
-# define BOOST_PP_REPEAT_1_195(m, d) BOOST_PP_REPEAT_1_194(m, d) m(2, 194, d)
-# define BOOST_PP_REPEAT_1_196(m, d) BOOST_PP_REPEAT_1_195(m, d) m(2, 195, d)
-# define BOOST_PP_REPEAT_1_197(m, d) BOOST_PP_REPEAT_1_196(m, d) m(2, 196, d)
-# define BOOST_PP_REPEAT_1_198(m, d) BOOST_PP_REPEAT_1_197(m, d) m(2, 197, d)
-# define BOOST_PP_REPEAT_1_199(m, d) BOOST_PP_REPEAT_1_198(m, d) m(2, 198, d)
-# define BOOST_PP_REPEAT_1_200(m, d) BOOST_PP_REPEAT_1_199(m, d) m(2, 199, d)
-# define BOOST_PP_REPEAT_1_201(m, d) BOOST_PP_REPEAT_1_200(m, d) m(2, 200, d)
-# define BOOST_PP_REPEAT_1_202(m, d) BOOST_PP_REPEAT_1_201(m, d) m(2, 201, d)
-# define BOOST_PP_REPEAT_1_203(m, d) BOOST_PP_REPEAT_1_202(m, d) m(2, 202, d)
-# define BOOST_PP_REPEAT_1_204(m, d) BOOST_PP_REPEAT_1_203(m, d) m(2, 203, d)
-# define BOOST_PP_REPEAT_1_205(m, d) BOOST_PP_REPEAT_1_204(m, d) m(2, 204, d)
-# define BOOST_PP_REPEAT_1_206(m, d) BOOST_PP_REPEAT_1_205(m, d) m(2, 205, d)
-# define BOOST_PP_REPEAT_1_207(m, d) BOOST_PP_REPEAT_1_206(m, d) m(2, 206, d)
-# define BOOST_PP_REPEAT_1_208(m, d) BOOST_PP_REPEAT_1_207(m, d) m(2, 207, d)
-# define BOOST_PP_REPEAT_1_209(m, d) BOOST_PP_REPEAT_1_208(m, d) m(2, 208, d)
-# define BOOST_PP_REPEAT_1_210(m, d) BOOST_PP_REPEAT_1_209(m, d) m(2, 209, d)
-# define BOOST_PP_REPEAT_1_211(m, d) BOOST_PP_REPEAT_1_210(m, d) m(2, 210, d)
-# define BOOST_PP_REPEAT_1_212(m, d) BOOST_PP_REPEAT_1_211(m, d) m(2, 211, d)
-# define BOOST_PP_REPEAT_1_213(m, d) BOOST_PP_REPEAT_1_212(m, d) m(2, 212, d)
-# define BOOST_PP_REPEAT_1_214(m, d) BOOST_PP_REPEAT_1_213(m, d) m(2, 213, d)
-# define BOOST_PP_REPEAT_1_215(m, d) BOOST_PP_REPEAT_1_214(m, d) m(2, 214, d)
-# define BOOST_PP_REPEAT_1_216(m, d) BOOST_PP_REPEAT_1_215(m, d) m(2, 215, d)
-# define BOOST_PP_REPEAT_1_217(m, d) BOOST_PP_REPEAT_1_216(m, d) m(2, 216, d)
-# define BOOST_PP_REPEAT_1_218(m, d) BOOST_PP_REPEAT_1_217(m, d) m(2, 217, d)
-# define BOOST_PP_REPEAT_1_219(m, d) BOOST_PP_REPEAT_1_218(m, d) m(2, 218, d)
-# define BOOST_PP_REPEAT_1_220(m, d) BOOST_PP_REPEAT_1_219(m, d) m(2, 219, d)
-# define BOOST_PP_REPEAT_1_221(m, d) BOOST_PP_REPEAT_1_220(m, d) m(2, 220, d)
-# define BOOST_PP_REPEAT_1_222(m, d) BOOST_PP_REPEAT_1_221(m, d) m(2, 221, d)
-# define BOOST_PP_REPEAT_1_223(m, d) BOOST_PP_REPEAT_1_222(m, d) m(2, 222, d)
-# define BOOST_PP_REPEAT_1_224(m, d) BOOST_PP_REPEAT_1_223(m, d) m(2, 223, d)
-# define BOOST_PP_REPEAT_1_225(m, d) BOOST_PP_REPEAT_1_224(m, d) m(2, 224, d)
-# define BOOST_PP_REPEAT_1_226(m, d) BOOST_PP_REPEAT_1_225(m, d) m(2, 225, d)
-# define BOOST_PP_REPEAT_1_227(m, d) BOOST_PP_REPEAT_1_226(m, d) m(2, 226, d)
-# define BOOST_PP_REPEAT_1_228(m, d) BOOST_PP_REPEAT_1_227(m, d) m(2, 227, d)
-# define BOOST_PP_REPEAT_1_229(m, d) BOOST_PP_REPEAT_1_228(m, d) m(2, 228, d)
-# define BOOST_PP_REPEAT_1_230(m, d) BOOST_PP_REPEAT_1_229(m, d) m(2, 229, d)
-# define BOOST_PP_REPEAT_1_231(m, d) BOOST_PP_REPEAT_1_230(m, d) m(2, 230, d)
-# define BOOST_PP_REPEAT_1_232(m, d) BOOST_PP_REPEAT_1_231(m, d) m(2, 231, d)
-# define BOOST_PP_REPEAT_1_233(m, d) BOOST_PP_REPEAT_1_232(m, d) m(2, 232, d)
-# define BOOST_PP_REPEAT_1_234(m, d) BOOST_PP_REPEAT_1_233(m, d) m(2, 233, d)
-# define BOOST_PP_REPEAT_1_235(m, d) BOOST_PP_REPEAT_1_234(m, d) m(2, 234, d)
-# define BOOST_PP_REPEAT_1_236(m, d) BOOST_PP_REPEAT_1_235(m, d) m(2, 235, d)
-# define BOOST_PP_REPEAT_1_237(m, d) BOOST_PP_REPEAT_1_236(m, d) m(2, 236, d)
-# define BOOST_PP_REPEAT_1_238(m, d) BOOST_PP_REPEAT_1_237(m, d) m(2, 237, d)
-# define BOOST_PP_REPEAT_1_239(m, d) BOOST_PP_REPEAT_1_238(m, d) m(2, 238, d)
-# define BOOST_PP_REPEAT_1_240(m, d) BOOST_PP_REPEAT_1_239(m, d) m(2, 239, d)
-# define BOOST_PP_REPEAT_1_241(m, d) BOOST_PP_REPEAT_1_240(m, d) m(2, 240, d)
-# define BOOST_PP_REPEAT_1_242(m, d) BOOST_PP_REPEAT_1_241(m, d) m(2, 241, d)
-# define BOOST_PP_REPEAT_1_243(m, d) BOOST_PP_REPEAT_1_242(m, d) m(2, 242, d)
-# define BOOST_PP_REPEAT_1_244(m, d) BOOST_PP_REPEAT_1_243(m, d) m(2, 243, d)
-# define BOOST_PP_REPEAT_1_245(m, d) BOOST_PP_REPEAT_1_244(m, d) m(2, 244, d)
-# define BOOST_PP_REPEAT_1_246(m, d) BOOST_PP_REPEAT_1_245(m, d) m(2, 245, d)
-# define BOOST_PP_REPEAT_1_247(m, d) BOOST_PP_REPEAT_1_246(m, d) m(2, 246, d)
-# define BOOST_PP_REPEAT_1_248(m, d) BOOST_PP_REPEAT_1_247(m, d) m(2, 247, d)
-# define BOOST_PP_REPEAT_1_249(m, d) BOOST_PP_REPEAT_1_248(m, d) m(2, 248, d)
-# define BOOST_PP_REPEAT_1_250(m, d) BOOST_PP_REPEAT_1_249(m, d) m(2, 249, d)
-# define BOOST_PP_REPEAT_1_251(m, d) BOOST_PP_REPEAT_1_250(m, d) m(2, 250, d)
-# define BOOST_PP_REPEAT_1_252(m, d) BOOST_PP_REPEAT_1_251(m, d) m(2, 251, d)
-# define BOOST_PP_REPEAT_1_253(m, d) BOOST_PP_REPEAT_1_252(m, d) m(2, 252, d)
-# define BOOST_PP_REPEAT_1_254(m, d) BOOST_PP_REPEAT_1_253(m, d) m(2, 253, d)
-# define BOOST_PP_REPEAT_1_255(m, d) BOOST_PP_REPEAT_1_254(m, d) m(2, 254, d)
-# define BOOST_PP_REPEAT_1_256(m, d) BOOST_PP_REPEAT_1_255(m, d) m(2, 255, d)
-#
-# define BOOST_PP_REPEAT_2_0(m, d)
-# define BOOST_PP_REPEAT_2_1(m, d) m(3, 0, d)
-# define BOOST_PP_REPEAT_2_2(m, d) BOOST_PP_REPEAT_2_1(m, d) m(3, 1, d)
-# define BOOST_PP_REPEAT_2_3(m, d) BOOST_PP_REPEAT_2_2(m, d) m(3, 2, d)
-# define BOOST_PP_REPEAT_2_4(m, d) BOOST_PP_REPEAT_2_3(m, d) m(3, 3, d)
-# define BOOST_PP_REPEAT_2_5(m, d) BOOST_PP_REPEAT_2_4(m, d) m(3, 4, d)
-# define BOOST_PP_REPEAT_2_6(m, d) BOOST_PP_REPEAT_2_5(m, d) m(3, 5, d)
-# define BOOST_PP_REPEAT_2_7(m, d) BOOST_PP_REPEAT_2_6(m, d) m(3, 6, d)
-# define BOOST_PP_REPEAT_2_8(m, d) BOOST_PP_REPEAT_2_7(m, d) m(3, 7, d)
-# define BOOST_PP_REPEAT_2_9(m, d) BOOST_PP_REPEAT_2_8(m, d) m(3, 8, d)
-# define BOOST_PP_REPEAT_2_10(m, d) BOOST_PP_REPEAT_2_9(m, d) m(3, 9, d)
-# define BOOST_PP_REPEAT_2_11(m, d) BOOST_PP_REPEAT_2_10(m, d) m(3, 10, d)
-# define BOOST_PP_REPEAT_2_12(m, d) BOOST_PP_REPEAT_2_11(m, d) m(3, 11, d)
-# define BOOST_PP_REPEAT_2_13(m, d) BOOST_PP_REPEAT_2_12(m, d) m(3, 12, d)
-# define BOOST_PP_REPEAT_2_14(m, d) BOOST_PP_REPEAT_2_13(m, d) m(3, 13, d)
-# define BOOST_PP_REPEAT_2_15(m, d) BOOST_PP_REPEAT_2_14(m, d) m(3, 14, d)
-# define BOOST_PP_REPEAT_2_16(m, d) BOOST_PP_REPEAT_2_15(m, d) m(3, 15, d)
-# define BOOST_PP_REPEAT_2_17(m, d) BOOST_PP_REPEAT_2_16(m, d) m(3, 16, d)
-# define BOOST_PP_REPEAT_2_18(m, d) BOOST_PP_REPEAT_2_17(m, d) m(3, 17, d)
-# define BOOST_PP_REPEAT_2_19(m, d) BOOST_PP_REPEAT_2_18(m, d) m(3, 18, d)
-# define BOOST_PP_REPEAT_2_20(m, d) BOOST_PP_REPEAT_2_19(m, d) m(3, 19, d)
-# define BOOST_PP_REPEAT_2_21(m, d) BOOST_PP_REPEAT_2_20(m, d) m(3, 20, d)
-# define BOOST_PP_REPEAT_2_22(m, d) BOOST_PP_REPEAT_2_21(m, d) m(3, 21, d)
-# define BOOST_PP_REPEAT_2_23(m, d) BOOST_PP_REPEAT_2_22(m, d) m(3, 22, d)
-# define BOOST_PP_REPEAT_2_24(m, d) BOOST_PP_REPEAT_2_23(m, d) m(3, 23, d)
-# define BOOST_PP_REPEAT_2_25(m, d) BOOST_PP_REPEAT_2_24(m, d) m(3, 24, d)
-# define BOOST_PP_REPEAT_2_26(m, d) BOOST_PP_REPEAT_2_25(m, d) m(3, 25, d)
-# define BOOST_PP_REPEAT_2_27(m, d) BOOST_PP_REPEAT_2_26(m, d) m(3, 26, d)
-# define BOOST_PP_REPEAT_2_28(m, d) BOOST_PP_REPEAT_2_27(m, d) m(3, 27, d)
-# define BOOST_PP_REPEAT_2_29(m, d) BOOST_PP_REPEAT_2_28(m, d) m(3, 28, d)
-# define BOOST_PP_REPEAT_2_30(m, d) BOOST_PP_REPEAT_2_29(m, d) m(3, 29, d)
-# define BOOST_PP_REPEAT_2_31(m, d) BOOST_PP_REPEAT_2_30(m, d) m(3, 30, d)
-# define BOOST_PP_REPEAT_2_32(m, d) BOOST_PP_REPEAT_2_31(m, d) m(3, 31, d)
-# define BOOST_PP_REPEAT_2_33(m, d) BOOST_PP_REPEAT_2_32(m, d) m(3, 32, d)
-# define BOOST_PP_REPEAT_2_34(m, d) BOOST_PP_REPEAT_2_33(m, d) m(3, 33, d)
-# define BOOST_PP_REPEAT_2_35(m, d) BOOST_PP_REPEAT_2_34(m, d) m(3, 34, d)
-# define BOOST_PP_REPEAT_2_36(m, d) BOOST_PP_REPEAT_2_35(m, d) m(3, 35, d)
-# define BOOST_PP_REPEAT_2_37(m, d) BOOST_PP_REPEAT_2_36(m, d) m(3, 36, d)
-# define BOOST_PP_REPEAT_2_38(m, d) BOOST_PP_REPEAT_2_37(m, d) m(3, 37, d)
-# define BOOST_PP_REPEAT_2_39(m, d) BOOST_PP_REPEAT_2_38(m, d) m(3, 38, d)
-# define BOOST_PP_REPEAT_2_40(m, d) BOOST_PP_REPEAT_2_39(m, d) m(3, 39, d)
-# define BOOST_PP_REPEAT_2_41(m, d) BOOST_PP_REPEAT_2_40(m, d) m(3, 40, d)
-# define BOOST_PP_REPEAT_2_42(m, d) BOOST_PP_REPEAT_2_41(m, d) m(3, 41, d)
-# define BOOST_PP_REPEAT_2_43(m, d) BOOST_PP_REPEAT_2_42(m, d) m(3, 42, d)
-# define BOOST_PP_REPEAT_2_44(m, d) BOOST_PP_REPEAT_2_43(m, d) m(3, 43, d)
-# define BOOST_PP_REPEAT_2_45(m, d) BOOST_PP_REPEAT_2_44(m, d) m(3, 44, d)
-# define BOOST_PP_REPEAT_2_46(m, d) BOOST_PP_REPEAT_2_45(m, d) m(3, 45, d)
-# define BOOST_PP_REPEAT_2_47(m, d) BOOST_PP_REPEAT_2_46(m, d) m(3, 46, d)
-# define BOOST_PP_REPEAT_2_48(m, d) BOOST_PP_REPEAT_2_47(m, d) m(3, 47, d)
-# define BOOST_PP_REPEAT_2_49(m, d) BOOST_PP_REPEAT_2_48(m, d) m(3, 48, d)
-# define BOOST_PP_REPEAT_2_50(m, d) BOOST_PP_REPEAT_2_49(m, d) m(3, 49, d)
-# define BOOST_PP_REPEAT_2_51(m, d) BOOST_PP_REPEAT_2_50(m, d) m(3, 50, d)
-# define BOOST_PP_REPEAT_2_52(m, d) BOOST_PP_REPEAT_2_51(m, d) m(3, 51, d)
-# define BOOST_PP_REPEAT_2_53(m, d) BOOST_PP_REPEAT_2_52(m, d) m(3, 52, d)
-# define BOOST_PP_REPEAT_2_54(m, d) BOOST_PP_REPEAT_2_53(m, d) m(3, 53, d)
-# define BOOST_PP_REPEAT_2_55(m, d) BOOST_PP_REPEAT_2_54(m, d) m(3, 54, d)
-# define BOOST_PP_REPEAT_2_56(m, d) BOOST_PP_REPEAT_2_55(m, d) m(3, 55, d)
-# define BOOST_PP_REPEAT_2_57(m, d) BOOST_PP_REPEAT_2_56(m, d) m(3, 56, d)
-# define BOOST_PP_REPEAT_2_58(m, d) BOOST_PP_REPEAT_2_57(m, d) m(3, 57, d)
-# define BOOST_PP_REPEAT_2_59(m, d) BOOST_PP_REPEAT_2_58(m, d) m(3, 58, d)
-# define BOOST_PP_REPEAT_2_60(m, d) BOOST_PP_REPEAT_2_59(m, d) m(3, 59, d)
-# define BOOST_PP_REPEAT_2_61(m, d) BOOST_PP_REPEAT_2_60(m, d) m(3, 60, d)
-# define BOOST_PP_REPEAT_2_62(m, d) BOOST_PP_REPEAT_2_61(m, d) m(3, 61, d)
-# define BOOST_PP_REPEAT_2_63(m, d) BOOST_PP_REPEAT_2_62(m, d) m(3, 62, d)
-# define BOOST_PP_REPEAT_2_64(m, d) BOOST_PP_REPEAT_2_63(m, d) m(3, 63, d)
-# define BOOST_PP_REPEAT_2_65(m, d) BOOST_PP_REPEAT_2_64(m, d) m(3, 64, d)
-# define BOOST_PP_REPEAT_2_66(m, d) BOOST_PP_REPEAT_2_65(m, d) m(3, 65, d)
-# define BOOST_PP_REPEAT_2_67(m, d) BOOST_PP_REPEAT_2_66(m, d) m(3, 66, d)
-# define BOOST_PP_REPEAT_2_68(m, d) BOOST_PP_REPEAT_2_67(m, d) m(3, 67, d)
-# define BOOST_PP_REPEAT_2_69(m, d) BOOST_PP_REPEAT_2_68(m, d) m(3, 68, d)
-# define BOOST_PP_REPEAT_2_70(m, d) BOOST_PP_REPEAT_2_69(m, d) m(3, 69, d)
-# define BOOST_PP_REPEAT_2_71(m, d) BOOST_PP_REPEAT_2_70(m, d) m(3, 70, d)
-# define BOOST_PP_REPEAT_2_72(m, d) BOOST_PP_REPEAT_2_71(m, d) m(3, 71, d)
-# define BOOST_PP_REPEAT_2_73(m, d) BOOST_PP_REPEAT_2_72(m, d) m(3, 72, d)
-# define BOOST_PP_REPEAT_2_74(m, d) BOOST_PP_REPEAT_2_73(m, d) m(3, 73, d)
-# define BOOST_PP_REPEAT_2_75(m, d) BOOST_PP_REPEAT_2_74(m, d) m(3, 74, d)
-# define BOOST_PP_REPEAT_2_76(m, d) BOOST_PP_REPEAT_2_75(m, d) m(3, 75, d)
-# define BOOST_PP_REPEAT_2_77(m, d) BOOST_PP_REPEAT_2_76(m, d) m(3, 76, d)
-# define BOOST_PP_REPEAT_2_78(m, d) BOOST_PP_REPEAT_2_77(m, d) m(3, 77, d)
-# define BOOST_PP_REPEAT_2_79(m, d) BOOST_PP_REPEAT_2_78(m, d) m(3, 78, d)
-# define BOOST_PP_REPEAT_2_80(m, d) BOOST_PP_REPEAT_2_79(m, d) m(3, 79, d)
-# define BOOST_PP_REPEAT_2_81(m, d) BOOST_PP_REPEAT_2_80(m, d) m(3, 80, d)
-# define BOOST_PP_REPEAT_2_82(m, d) BOOST_PP_REPEAT_2_81(m, d) m(3, 81, d)
-# define BOOST_PP_REPEAT_2_83(m, d) BOOST_PP_REPEAT_2_82(m, d) m(3, 82, d)
-# define BOOST_PP_REPEAT_2_84(m, d) BOOST_PP_REPEAT_2_83(m, d) m(3, 83, d)
-# define BOOST_PP_REPEAT_2_85(m, d) BOOST_PP_REPEAT_2_84(m, d) m(3, 84, d)
-# define BOOST_PP_REPEAT_2_86(m, d) BOOST_PP_REPEAT_2_85(m, d) m(3, 85, d)
-# define BOOST_PP_REPEAT_2_87(m, d) BOOST_PP_REPEAT_2_86(m, d) m(3, 86, d)
-# define BOOST_PP_REPEAT_2_88(m, d) BOOST_PP_REPEAT_2_87(m, d) m(3, 87, d)
-# define BOOST_PP_REPEAT_2_89(m, d) BOOST_PP_REPEAT_2_88(m, d) m(3, 88, d)
-# define BOOST_PP_REPEAT_2_90(m, d) BOOST_PP_REPEAT_2_89(m, d) m(3, 89, d)
-# define BOOST_PP_REPEAT_2_91(m, d) BOOST_PP_REPEAT_2_90(m, d) m(3, 90, d)
-# define BOOST_PP_REPEAT_2_92(m, d) BOOST_PP_REPEAT_2_91(m, d) m(3, 91, d)
-# define BOOST_PP_REPEAT_2_93(m, d) BOOST_PP_REPEAT_2_92(m, d) m(3, 92, d)
-# define BOOST_PP_REPEAT_2_94(m, d) BOOST_PP_REPEAT_2_93(m, d) m(3, 93, d)
-# define BOOST_PP_REPEAT_2_95(m, d) BOOST_PP_REPEAT_2_94(m, d) m(3, 94, d)
-# define BOOST_PP_REPEAT_2_96(m, d) BOOST_PP_REPEAT_2_95(m, d) m(3, 95, d)
-# define BOOST_PP_REPEAT_2_97(m, d) BOOST_PP_REPEAT_2_96(m, d) m(3, 96, d)
-# define BOOST_PP_REPEAT_2_98(m, d) BOOST_PP_REPEAT_2_97(m, d) m(3, 97, d)
-# define BOOST_PP_REPEAT_2_99(m, d) BOOST_PP_REPEAT_2_98(m, d) m(3, 98, d)
-# define BOOST_PP_REPEAT_2_100(m, d) BOOST_PP_REPEAT_2_99(m, d) m(3, 99, d)
-# define BOOST_PP_REPEAT_2_101(m, d) BOOST_PP_REPEAT_2_100(m, d) m(3, 100, d)
-# define BOOST_PP_REPEAT_2_102(m, d) BOOST_PP_REPEAT_2_101(m, d) m(3, 101, d)
-# define BOOST_PP_REPEAT_2_103(m, d) BOOST_PP_REPEAT_2_102(m, d) m(3, 102, d)
-# define BOOST_PP_REPEAT_2_104(m, d) BOOST_PP_REPEAT_2_103(m, d) m(3, 103, d)
-# define BOOST_PP_REPEAT_2_105(m, d) BOOST_PP_REPEAT_2_104(m, d) m(3, 104, d)
-# define BOOST_PP_REPEAT_2_106(m, d) BOOST_PP_REPEAT_2_105(m, d) m(3, 105, d)
-# define BOOST_PP_REPEAT_2_107(m, d) BOOST_PP_REPEAT_2_106(m, d) m(3, 106, d)
-# define BOOST_PP_REPEAT_2_108(m, d) BOOST_PP_REPEAT_2_107(m, d) m(3, 107, d)
-# define BOOST_PP_REPEAT_2_109(m, d) BOOST_PP_REPEAT_2_108(m, d) m(3, 108, d)
-# define BOOST_PP_REPEAT_2_110(m, d) BOOST_PP_REPEAT_2_109(m, d) m(3, 109, d)
-# define BOOST_PP_REPEAT_2_111(m, d) BOOST_PP_REPEAT_2_110(m, d) m(3, 110, d)
-# define BOOST_PP_REPEAT_2_112(m, d) BOOST_PP_REPEAT_2_111(m, d) m(3, 111, d)
-# define BOOST_PP_REPEAT_2_113(m, d) BOOST_PP_REPEAT_2_112(m, d) m(3, 112, d)
-# define BOOST_PP_REPEAT_2_114(m, d) BOOST_PP_REPEAT_2_113(m, d) m(3, 113, d)
-# define BOOST_PP_REPEAT_2_115(m, d) BOOST_PP_REPEAT_2_114(m, d) m(3, 114, d)
-# define BOOST_PP_REPEAT_2_116(m, d) BOOST_PP_REPEAT_2_115(m, d) m(3, 115, d)
-# define BOOST_PP_REPEAT_2_117(m, d) BOOST_PP_REPEAT_2_116(m, d) m(3, 116, d)
-# define BOOST_PP_REPEAT_2_118(m, d) BOOST_PP_REPEAT_2_117(m, d) m(3, 117, d)
-# define BOOST_PP_REPEAT_2_119(m, d) BOOST_PP_REPEAT_2_118(m, d) m(3, 118, d)
-# define BOOST_PP_REPEAT_2_120(m, d) BOOST_PP_REPEAT_2_119(m, d) m(3, 119, d)
-# define BOOST_PP_REPEAT_2_121(m, d) BOOST_PP_REPEAT_2_120(m, d) m(3, 120, d)
-# define BOOST_PP_REPEAT_2_122(m, d) BOOST_PP_REPEAT_2_121(m, d) m(3, 121, d)
-# define BOOST_PP_REPEAT_2_123(m, d) BOOST_PP_REPEAT_2_122(m, d) m(3, 122, d)
-# define BOOST_PP_REPEAT_2_124(m, d) BOOST_PP_REPEAT_2_123(m, d) m(3, 123, d)
-# define BOOST_PP_REPEAT_2_125(m, d) BOOST_PP_REPEAT_2_124(m, d) m(3, 124, d)
-# define BOOST_PP_REPEAT_2_126(m, d) BOOST_PP_REPEAT_2_125(m, d) m(3, 125, d)
-# define BOOST_PP_REPEAT_2_127(m, d) BOOST_PP_REPEAT_2_126(m, d) m(3, 126, d)
-# define BOOST_PP_REPEAT_2_128(m, d) BOOST_PP_REPEAT_2_127(m, d) m(3, 127, d)
-# define BOOST_PP_REPEAT_2_129(m, d) BOOST_PP_REPEAT_2_128(m, d) m(3, 128, d)
-# define BOOST_PP_REPEAT_2_130(m, d) BOOST_PP_REPEAT_2_129(m, d) m(3, 129, d)
-# define BOOST_PP_REPEAT_2_131(m, d) BOOST_PP_REPEAT_2_130(m, d) m(3, 130, d)
-# define BOOST_PP_REPEAT_2_132(m, d) BOOST_PP_REPEAT_2_131(m, d) m(3, 131, d)
-# define BOOST_PP_REPEAT_2_133(m, d) BOOST_PP_REPEAT_2_132(m, d) m(3, 132, d)
-# define BOOST_PP_REPEAT_2_134(m, d) BOOST_PP_REPEAT_2_133(m, d) m(3, 133, d)
-# define BOOST_PP_REPEAT_2_135(m, d) BOOST_PP_REPEAT_2_134(m, d) m(3, 134, d)
-# define BOOST_PP_REPEAT_2_136(m, d) BOOST_PP_REPEAT_2_135(m, d) m(3, 135, d)
-# define BOOST_PP_REPEAT_2_137(m, d) BOOST_PP_REPEAT_2_136(m, d) m(3, 136, d)
-# define BOOST_PP_REPEAT_2_138(m, d) BOOST_PP_REPEAT_2_137(m, d) m(3, 137, d)
-# define BOOST_PP_REPEAT_2_139(m, d) BOOST_PP_REPEAT_2_138(m, d) m(3, 138, d)
-# define BOOST_PP_REPEAT_2_140(m, d) BOOST_PP_REPEAT_2_139(m, d) m(3, 139, d)
-# define BOOST_PP_REPEAT_2_141(m, d) BOOST_PP_REPEAT_2_140(m, d) m(3, 140, d)
-# define BOOST_PP_REPEAT_2_142(m, d) BOOST_PP_REPEAT_2_141(m, d) m(3, 141, d)
-# define BOOST_PP_REPEAT_2_143(m, d) BOOST_PP_REPEAT_2_142(m, d) m(3, 142, d)
-# define BOOST_PP_REPEAT_2_144(m, d) BOOST_PP_REPEAT_2_143(m, d) m(3, 143, d)
-# define BOOST_PP_REPEAT_2_145(m, d) BOOST_PP_REPEAT_2_144(m, d) m(3, 144, d)
-# define BOOST_PP_REPEAT_2_146(m, d) BOOST_PP_REPEAT_2_145(m, d) m(3, 145, d)
-# define BOOST_PP_REPEAT_2_147(m, d) BOOST_PP_REPEAT_2_146(m, d) m(3, 146, d)
-# define BOOST_PP_REPEAT_2_148(m, d) BOOST_PP_REPEAT_2_147(m, d) m(3, 147, d)
-# define BOOST_PP_REPEAT_2_149(m, d) BOOST_PP_REPEAT_2_148(m, d) m(3, 148, d)
-# define BOOST_PP_REPEAT_2_150(m, d) BOOST_PP_REPEAT_2_149(m, d) m(3, 149, d)
-# define BOOST_PP_REPEAT_2_151(m, d) BOOST_PP_REPEAT_2_150(m, d) m(3, 150, d)
-# define BOOST_PP_REPEAT_2_152(m, d) BOOST_PP_REPEAT_2_151(m, d) m(3, 151, d)
-# define BOOST_PP_REPEAT_2_153(m, d) BOOST_PP_REPEAT_2_152(m, d) m(3, 152, d)
-# define BOOST_PP_REPEAT_2_154(m, d) BOOST_PP_REPEAT_2_153(m, d) m(3, 153, d)
-# define BOOST_PP_REPEAT_2_155(m, d) BOOST_PP_REPEAT_2_154(m, d) m(3, 154, d)
-# define BOOST_PP_REPEAT_2_156(m, d) BOOST_PP_REPEAT_2_155(m, d) m(3, 155, d)
-# define BOOST_PP_REPEAT_2_157(m, d) BOOST_PP_REPEAT_2_156(m, d) m(3, 156, d)
-# define BOOST_PP_REPEAT_2_158(m, d) BOOST_PP_REPEAT_2_157(m, d) m(3, 157, d)
-# define BOOST_PP_REPEAT_2_159(m, d) BOOST_PP_REPEAT_2_158(m, d) m(3, 158, d)
-# define BOOST_PP_REPEAT_2_160(m, d) BOOST_PP_REPEAT_2_159(m, d) m(3, 159, d)
-# define BOOST_PP_REPEAT_2_161(m, d) BOOST_PP_REPEAT_2_160(m, d) m(3, 160, d)
-# define BOOST_PP_REPEAT_2_162(m, d) BOOST_PP_REPEAT_2_161(m, d) m(3, 161, d)
-# define BOOST_PP_REPEAT_2_163(m, d) BOOST_PP_REPEAT_2_162(m, d) m(3, 162, d)
-# define BOOST_PP_REPEAT_2_164(m, d) BOOST_PP_REPEAT_2_163(m, d) m(3, 163, d)
-# define BOOST_PP_REPEAT_2_165(m, d) BOOST_PP_REPEAT_2_164(m, d) m(3, 164, d)
-# define BOOST_PP_REPEAT_2_166(m, d) BOOST_PP_REPEAT_2_165(m, d) m(3, 165, d)
-# define BOOST_PP_REPEAT_2_167(m, d) BOOST_PP_REPEAT_2_166(m, d) m(3, 166, d)
-# define BOOST_PP_REPEAT_2_168(m, d) BOOST_PP_REPEAT_2_167(m, d) m(3, 167, d)
-# define BOOST_PP_REPEAT_2_169(m, d) BOOST_PP_REPEAT_2_168(m, d) m(3, 168, d)
-# define BOOST_PP_REPEAT_2_170(m, d) BOOST_PP_REPEAT_2_169(m, d) m(3, 169, d)
-# define BOOST_PP_REPEAT_2_171(m, d) BOOST_PP_REPEAT_2_170(m, d) m(3, 170, d)
-# define BOOST_PP_REPEAT_2_172(m, d) BOOST_PP_REPEAT_2_171(m, d) m(3, 171, d)
-# define BOOST_PP_REPEAT_2_173(m, d) BOOST_PP_REPEAT_2_172(m, d) m(3, 172, d)
-# define BOOST_PP_REPEAT_2_174(m, d) BOOST_PP_REPEAT_2_173(m, d) m(3, 173, d)
-# define BOOST_PP_REPEAT_2_175(m, d) BOOST_PP_REPEAT_2_174(m, d) m(3, 174, d)
-# define BOOST_PP_REPEAT_2_176(m, d) BOOST_PP_REPEAT_2_175(m, d) m(3, 175, d)
-# define BOOST_PP_REPEAT_2_177(m, d) BOOST_PP_REPEAT_2_176(m, d) m(3, 176, d)
-# define BOOST_PP_REPEAT_2_178(m, d) BOOST_PP_REPEAT_2_177(m, d) m(3, 177, d)
-# define BOOST_PP_REPEAT_2_179(m, d) BOOST_PP_REPEAT_2_178(m, d) m(3, 178, d)
-# define BOOST_PP_REPEAT_2_180(m, d) BOOST_PP_REPEAT_2_179(m, d) m(3, 179, d)
-# define BOOST_PP_REPEAT_2_181(m, d) BOOST_PP_REPEAT_2_180(m, d) m(3, 180, d)
-# define BOOST_PP_REPEAT_2_182(m, d) BOOST_PP_REPEAT_2_181(m, d) m(3, 181, d)
-# define BOOST_PP_REPEAT_2_183(m, d) BOOST_PP_REPEAT_2_182(m, d) m(3, 182, d)
-# define BOOST_PP_REPEAT_2_184(m, d) BOOST_PP_REPEAT_2_183(m, d) m(3, 183, d)
-# define BOOST_PP_REPEAT_2_185(m, d) BOOST_PP_REPEAT_2_184(m, d) m(3, 184, d)
-# define BOOST_PP_REPEAT_2_186(m, d) BOOST_PP_REPEAT_2_185(m, d) m(3, 185, d)
-# define BOOST_PP_REPEAT_2_187(m, d) BOOST_PP_REPEAT_2_186(m, d) m(3, 186, d)
-# define BOOST_PP_REPEAT_2_188(m, d) BOOST_PP_REPEAT_2_187(m, d) m(3, 187, d)
-# define BOOST_PP_REPEAT_2_189(m, d) BOOST_PP_REPEAT_2_188(m, d) m(3, 188, d)
-# define BOOST_PP_REPEAT_2_190(m, d) BOOST_PP_REPEAT_2_189(m, d) m(3, 189, d)
-# define BOOST_PP_REPEAT_2_191(m, d) BOOST_PP_REPEAT_2_190(m, d) m(3, 190, d)
-# define BOOST_PP_REPEAT_2_192(m, d) BOOST_PP_REPEAT_2_191(m, d) m(3, 191, d)
-# define BOOST_PP_REPEAT_2_193(m, d) BOOST_PP_REPEAT_2_192(m, d) m(3, 192, d)
-# define BOOST_PP_REPEAT_2_194(m, d) BOOST_PP_REPEAT_2_193(m, d) m(3, 193, d)
-# define BOOST_PP_REPEAT_2_195(m, d) BOOST_PP_REPEAT_2_194(m, d) m(3, 194, d)
-# define BOOST_PP_REPEAT_2_196(m, d) BOOST_PP_REPEAT_2_195(m, d) m(3, 195, d)
-# define BOOST_PP_REPEAT_2_197(m, d) BOOST_PP_REPEAT_2_196(m, d) m(3, 196, d)
-# define BOOST_PP_REPEAT_2_198(m, d) BOOST_PP_REPEAT_2_197(m, d) m(3, 197, d)
-# define BOOST_PP_REPEAT_2_199(m, d) BOOST_PP_REPEAT_2_198(m, d) m(3, 198, d)
-# define BOOST_PP_REPEAT_2_200(m, d) BOOST_PP_REPEAT_2_199(m, d) m(3, 199, d)
-# define BOOST_PP_REPEAT_2_201(m, d) BOOST_PP_REPEAT_2_200(m, d) m(3, 200, d)
-# define BOOST_PP_REPEAT_2_202(m, d) BOOST_PP_REPEAT_2_201(m, d) m(3, 201, d)
-# define BOOST_PP_REPEAT_2_203(m, d) BOOST_PP_REPEAT_2_202(m, d) m(3, 202, d)
-# define BOOST_PP_REPEAT_2_204(m, d) BOOST_PP_REPEAT_2_203(m, d) m(3, 203, d)
-# define BOOST_PP_REPEAT_2_205(m, d) BOOST_PP_REPEAT_2_204(m, d) m(3, 204, d)
-# define BOOST_PP_REPEAT_2_206(m, d) BOOST_PP_REPEAT_2_205(m, d) m(3, 205, d)
-# define BOOST_PP_REPEAT_2_207(m, d) BOOST_PP_REPEAT_2_206(m, d) m(3, 206, d)
-# define BOOST_PP_REPEAT_2_208(m, d) BOOST_PP_REPEAT_2_207(m, d) m(3, 207, d)
-# define BOOST_PP_REPEAT_2_209(m, d) BOOST_PP_REPEAT_2_208(m, d) m(3, 208, d)
-# define BOOST_PP_REPEAT_2_210(m, d) BOOST_PP_REPEAT_2_209(m, d) m(3, 209, d)
-# define BOOST_PP_REPEAT_2_211(m, d) BOOST_PP_REPEAT_2_210(m, d) m(3, 210, d)
-# define BOOST_PP_REPEAT_2_212(m, d) BOOST_PP_REPEAT_2_211(m, d) m(3, 211, d)
-# define BOOST_PP_REPEAT_2_213(m, d) BOOST_PP_REPEAT_2_212(m, d) m(3, 212, d)
-# define BOOST_PP_REPEAT_2_214(m, d) BOOST_PP_REPEAT_2_213(m, d) m(3, 213, d)
-# define BOOST_PP_REPEAT_2_215(m, d) BOOST_PP_REPEAT_2_214(m, d) m(3, 214, d)
-# define BOOST_PP_REPEAT_2_216(m, d) BOOST_PP_REPEAT_2_215(m, d) m(3, 215, d)
-# define BOOST_PP_REPEAT_2_217(m, d) BOOST_PP_REPEAT_2_216(m, d) m(3, 216, d)
-# define BOOST_PP_REPEAT_2_218(m, d) BOOST_PP_REPEAT_2_217(m, d) m(3, 217, d)
-# define BOOST_PP_REPEAT_2_219(m, d) BOOST_PP_REPEAT_2_218(m, d) m(3, 218, d)
-# define BOOST_PP_REPEAT_2_220(m, d) BOOST_PP_REPEAT_2_219(m, d) m(3, 219, d)
-# define BOOST_PP_REPEAT_2_221(m, d) BOOST_PP_REPEAT_2_220(m, d) m(3, 220, d)
-# define BOOST_PP_REPEAT_2_222(m, d) BOOST_PP_REPEAT_2_221(m, d) m(3, 221, d)
-# define BOOST_PP_REPEAT_2_223(m, d) BOOST_PP_REPEAT_2_222(m, d) m(3, 222, d)
-# define BOOST_PP_REPEAT_2_224(m, d) BOOST_PP_REPEAT_2_223(m, d) m(3, 223, d)
-# define BOOST_PP_REPEAT_2_225(m, d) BOOST_PP_REPEAT_2_224(m, d) m(3, 224, d)
-# define BOOST_PP_REPEAT_2_226(m, d) BOOST_PP_REPEAT_2_225(m, d) m(3, 225, d)
-# define BOOST_PP_REPEAT_2_227(m, d) BOOST_PP_REPEAT_2_226(m, d) m(3, 226, d)
-# define BOOST_PP_REPEAT_2_228(m, d) BOOST_PP_REPEAT_2_227(m, d) m(3, 227, d)
-# define BOOST_PP_REPEAT_2_229(m, d) BOOST_PP_REPEAT_2_228(m, d) m(3, 228, d)
-# define BOOST_PP_REPEAT_2_230(m, d) BOOST_PP_REPEAT_2_229(m, d) m(3, 229, d)
-# define BOOST_PP_REPEAT_2_231(m, d) BOOST_PP_REPEAT_2_230(m, d) m(3, 230, d)
-# define BOOST_PP_REPEAT_2_232(m, d) BOOST_PP_REPEAT_2_231(m, d) m(3, 231, d)
-# define BOOST_PP_REPEAT_2_233(m, d) BOOST_PP_REPEAT_2_232(m, d) m(3, 232, d)
-# define BOOST_PP_REPEAT_2_234(m, d) BOOST_PP_REPEAT_2_233(m, d) m(3, 233, d)
-# define BOOST_PP_REPEAT_2_235(m, d) BOOST_PP_REPEAT_2_234(m, d) m(3, 234, d)
-# define BOOST_PP_REPEAT_2_236(m, d) BOOST_PP_REPEAT_2_235(m, d) m(3, 235, d)
-# define BOOST_PP_REPEAT_2_237(m, d) BOOST_PP_REPEAT_2_236(m, d) m(3, 236, d)
-# define BOOST_PP_REPEAT_2_238(m, d) BOOST_PP_REPEAT_2_237(m, d) m(3, 237, d)
-# define BOOST_PP_REPEAT_2_239(m, d) BOOST_PP_REPEAT_2_238(m, d) m(3, 238, d)
-# define BOOST_PP_REPEAT_2_240(m, d) BOOST_PP_REPEAT_2_239(m, d) m(3, 239, d)
-# define BOOST_PP_REPEAT_2_241(m, d) BOOST_PP_REPEAT_2_240(m, d) m(3, 240, d)
-# define BOOST_PP_REPEAT_2_242(m, d) BOOST_PP_REPEAT_2_241(m, d) m(3, 241, d)
-# define BOOST_PP_REPEAT_2_243(m, d) BOOST_PP_REPEAT_2_242(m, d) m(3, 242, d)
-# define BOOST_PP_REPEAT_2_244(m, d) BOOST_PP_REPEAT_2_243(m, d) m(3, 243, d)
-# define BOOST_PP_REPEAT_2_245(m, d) BOOST_PP_REPEAT_2_244(m, d) m(3, 244, d)
-# define BOOST_PP_REPEAT_2_246(m, d) BOOST_PP_REPEAT_2_245(m, d) m(3, 245, d)
-# define BOOST_PP_REPEAT_2_247(m, d) BOOST_PP_REPEAT_2_246(m, d) m(3, 246, d)
-# define BOOST_PP_REPEAT_2_248(m, d) BOOST_PP_REPEAT_2_247(m, d) m(3, 247, d)
-# define BOOST_PP_REPEAT_2_249(m, d) BOOST_PP_REPEAT_2_248(m, d) m(3, 248, d)
-# define BOOST_PP_REPEAT_2_250(m, d) BOOST_PP_REPEAT_2_249(m, d) m(3, 249, d)
-# define BOOST_PP_REPEAT_2_251(m, d) BOOST_PP_REPEAT_2_250(m, d) m(3, 250, d)
-# define BOOST_PP_REPEAT_2_252(m, d) BOOST_PP_REPEAT_2_251(m, d) m(3, 251, d)
-# define BOOST_PP_REPEAT_2_253(m, d) BOOST_PP_REPEAT_2_252(m, d) m(3, 252, d)
-# define BOOST_PP_REPEAT_2_254(m, d) BOOST_PP_REPEAT_2_253(m, d) m(3, 253, d)
-# define BOOST_PP_REPEAT_2_255(m, d) BOOST_PP_REPEAT_2_254(m, d) m(3, 254, d)
-# define BOOST_PP_REPEAT_2_256(m, d) BOOST_PP_REPEAT_2_255(m, d) m(3, 255, d)
-#
-# define BOOST_PP_REPEAT_3_0(m, d)
-# define BOOST_PP_REPEAT_3_1(m, d) m(4, 0, d)
-# define BOOST_PP_REPEAT_3_2(m, d) BOOST_PP_REPEAT_3_1(m, d) m(4, 1, d)
-# define BOOST_PP_REPEAT_3_3(m, d) BOOST_PP_REPEAT_3_2(m, d) m(4, 2, d)
-# define BOOST_PP_REPEAT_3_4(m, d) BOOST_PP_REPEAT_3_3(m, d) m(4, 3, d)
-# define BOOST_PP_REPEAT_3_5(m, d) BOOST_PP_REPEAT_3_4(m, d) m(4, 4, d)
-# define BOOST_PP_REPEAT_3_6(m, d) BOOST_PP_REPEAT_3_5(m, d) m(4, 5, d)
-# define BOOST_PP_REPEAT_3_7(m, d) BOOST_PP_REPEAT_3_6(m, d) m(4, 6, d)
-# define BOOST_PP_REPEAT_3_8(m, d) BOOST_PP_REPEAT_3_7(m, d) m(4, 7, d)
-# define BOOST_PP_REPEAT_3_9(m, d) BOOST_PP_REPEAT_3_8(m, d) m(4, 8, d)
-# define BOOST_PP_REPEAT_3_10(m, d) BOOST_PP_REPEAT_3_9(m, d) m(4, 9, d)
-# define BOOST_PP_REPEAT_3_11(m, d) BOOST_PP_REPEAT_3_10(m, d) m(4, 10, d)
-# define BOOST_PP_REPEAT_3_12(m, d) BOOST_PP_REPEAT_3_11(m, d) m(4, 11, d)
-# define BOOST_PP_REPEAT_3_13(m, d) BOOST_PP_REPEAT_3_12(m, d) m(4, 12, d)
-# define BOOST_PP_REPEAT_3_14(m, d) BOOST_PP_REPEAT_3_13(m, d) m(4, 13, d)
-# define BOOST_PP_REPEAT_3_15(m, d) BOOST_PP_REPEAT_3_14(m, d) m(4, 14, d)
-# define BOOST_PP_REPEAT_3_16(m, d) BOOST_PP_REPEAT_3_15(m, d) m(4, 15, d)
-# define BOOST_PP_REPEAT_3_17(m, d) BOOST_PP_REPEAT_3_16(m, d) m(4, 16, d)
-# define BOOST_PP_REPEAT_3_18(m, d) BOOST_PP_REPEAT_3_17(m, d) m(4, 17, d)
-# define BOOST_PP_REPEAT_3_19(m, d) BOOST_PP_REPEAT_3_18(m, d) m(4, 18, d)
-# define BOOST_PP_REPEAT_3_20(m, d) BOOST_PP_REPEAT_3_19(m, d) m(4, 19, d)
-# define BOOST_PP_REPEAT_3_21(m, d) BOOST_PP_REPEAT_3_20(m, d) m(4, 20, d)
-# define BOOST_PP_REPEAT_3_22(m, d) BOOST_PP_REPEAT_3_21(m, d) m(4, 21, d)
-# define BOOST_PP_REPEAT_3_23(m, d) BOOST_PP_REPEAT_3_22(m, d) m(4, 22, d)
-# define BOOST_PP_REPEAT_3_24(m, d) BOOST_PP_REPEAT_3_23(m, d) m(4, 23, d)
-# define BOOST_PP_REPEAT_3_25(m, d) BOOST_PP_REPEAT_3_24(m, d) m(4, 24, d)
-# define BOOST_PP_REPEAT_3_26(m, d) BOOST_PP_REPEAT_3_25(m, d) m(4, 25, d)
-# define BOOST_PP_REPEAT_3_27(m, d) BOOST_PP_REPEAT_3_26(m, d) m(4, 26, d)
-# define BOOST_PP_REPEAT_3_28(m, d) BOOST_PP_REPEAT_3_27(m, d) m(4, 27, d)
-# define BOOST_PP_REPEAT_3_29(m, d) BOOST_PP_REPEAT_3_28(m, d) m(4, 28, d)
-# define BOOST_PP_REPEAT_3_30(m, d) BOOST_PP_REPEAT_3_29(m, d) m(4, 29, d)
-# define BOOST_PP_REPEAT_3_31(m, d) BOOST_PP_REPEAT_3_30(m, d) m(4, 30, d)
-# define BOOST_PP_REPEAT_3_32(m, d) BOOST_PP_REPEAT_3_31(m, d) m(4, 31, d)
-# define BOOST_PP_REPEAT_3_33(m, d) BOOST_PP_REPEAT_3_32(m, d) m(4, 32, d)
-# define BOOST_PP_REPEAT_3_34(m, d) BOOST_PP_REPEAT_3_33(m, d) m(4, 33, d)
-# define BOOST_PP_REPEAT_3_35(m, d) BOOST_PP_REPEAT_3_34(m, d) m(4, 34, d)
-# define BOOST_PP_REPEAT_3_36(m, d) BOOST_PP_REPEAT_3_35(m, d) m(4, 35, d)
-# define BOOST_PP_REPEAT_3_37(m, d) BOOST_PP_REPEAT_3_36(m, d) m(4, 36, d)
-# define BOOST_PP_REPEAT_3_38(m, d) BOOST_PP_REPEAT_3_37(m, d) m(4, 37, d)
-# define BOOST_PP_REPEAT_3_39(m, d) BOOST_PP_REPEAT_3_38(m, d) m(4, 38, d)
-# define BOOST_PP_REPEAT_3_40(m, d) BOOST_PP_REPEAT_3_39(m, d) m(4, 39, d)
-# define BOOST_PP_REPEAT_3_41(m, d) BOOST_PP_REPEAT_3_40(m, d) m(4, 40, d)
-# define BOOST_PP_REPEAT_3_42(m, d) BOOST_PP_REPEAT_3_41(m, d) m(4, 41, d)
-# define BOOST_PP_REPEAT_3_43(m, d) BOOST_PP_REPEAT_3_42(m, d) m(4, 42, d)
-# define BOOST_PP_REPEAT_3_44(m, d) BOOST_PP_REPEAT_3_43(m, d) m(4, 43, d)
-# define BOOST_PP_REPEAT_3_45(m, d) BOOST_PP_REPEAT_3_44(m, d) m(4, 44, d)
-# define BOOST_PP_REPEAT_3_46(m, d) BOOST_PP_REPEAT_3_45(m, d) m(4, 45, d)
-# define BOOST_PP_REPEAT_3_47(m, d) BOOST_PP_REPEAT_3_46(m, d) m(4, 46, d)
-# define BOOST_PP_REPEAT_3_48(m, d) BOOST_PP_REPEAT_3_47(m, d) m(4, 47, d)
-# define BOOST_PP_REPEAT_3_49(m, d) BOOST_PP_REPEAT_3_48(m, d) m(4, 48, d)
-# define BOOST_PP_REPEAT_3_50(m, d) BOOST_PP_REPEAT_3_49(m, d) m(4, 49, d)
-# define BOOST_PP_REPEAT_3_51(m, d) BOOST_PP_REPEAT_3_50(m, d) m(4, 50, d)
-# define BOOST_PP_REPEAT_3_52(m, d) BOOST_PP_REPEAT_3_51(m, d) m(4, 51, d)
-# define BOOST_PP_REPEAT_3_53(m, d) BOOST_PP_REPEAT_3_52(m, d) m(4, 52, d)
-# define BOOST_PP_REPEAT_3_54(m, d) BOOST_PP_REPEAT_3_53(m, d) m(4, 53, d)
-# define BOOST_PP_REPEAT_3_55(m, d) BOOST_PP_REPEAT_3_54(m, d) m(4, 54, d)
-# define BOOST_PP_REPEAT_3_56(m, d) BOOST_PP_REPEAT_3_55(m, d) m(4, 55, d)
-# define BOOST_PP_REPEAT_3_57(m, d) BOOST_PP_REPEAT_3_56(m, d) m(4, 56, d)
-# define BOOST_PP_REPEAT_3_58(m, d) BOOST_PP_REPEAT_3_57(m, d) m(4, 57, d)
-# define BOOST_PP_REPEAT_3_59(m, d) BOOST_PP_REPEAT_3_58(m, d) m(4, 58, d)
-# define BOOST_PP_REPEAT_3_60(m, d) BOOST_PP_REPEAT_3_59(m, d) m(4, 59, d)
-# define BOOST_PP_REPEAT_3_61(m, d) BOOST_PP_REPEAT_3_60(m, d) m(4, 60, d)
-# define BOOST_PP_REPEAT_3_62(m, d) BOOST_PP_REPEAT_3_61(m, d) m(4, 61, d)
-# define BOOST_PP_REPEAT_3_63(m, d) BOOST_PP_REPEAT_3_62(m, d) m(4, 62, d)
-# define BOOST_PP_REPEAT_3_64(m, d) BOOST_PP_REPEAT_3_63(m, d) m(4, 63, d)
-# define BOOST_PP_REPEAT_3_65(m, d) BOOST_PP_REPEAT_3_64(m, d) m(4, 64, d)
-# define BOOST_PP_REPEAT_3_66(m, d) BOOST_PP_REPEAT_3_65(m, d) m(4, 65, d)
-# define BOOST_PP_REPEAT_3_67(m, d) BOOST_PP_REPEAT_3_66(m, d) m(4, 66, d)
-# define BOOST_PP_REPEAT_3_68(m, d) BOOST_PP_REPEAT_3_67(m, d) m(4, 67, d)
-# define BOOST_PP_REPEAT_3_69(m, d) BOOST_PP_REPEAT_3_68(m, d) m(4, 68, d)
-# define BOOST_PP_REPEAT_3_70(m, d) BOOST_PP_REPEAT_3_69(m, d) m(4, 69, d)
-# define BOOST_PP_REPEAT_3_71(m, d) BOOST_PP_REPEAT_3_70(m, d) m(4, 70, d)
-# define BOOST_PP_REPEAT_3_72(m, d) BOOST_PP_REPEAT_3_71(m, d) m(4, 71, d)
-# define BOOST_PP_REPEAT_3_73(m, d) BOOST_PP_REPEAT_3_72(m, d) m(4, 72, d)
-# define BOOST_PP_REPEAT_3_74(m, d) BOOST_PP_REPEAT_3_73(m, d) m(4, 73, d)
-# define BOOST_PP_REPEAT_3_75(m, d) BOOST_PP_REPEAT_3_74(m, d) m(4, 74, d)
-# define BOOST_PP_REPEAT_3_76(m, d) BOOST_PP_REPEAT_3_75(m, d) m(4, 75, d)
-# define BOOST_PP_REPEAT_3_77(m, d) BOOST_PP_REPEAT_3_76(m, d) m(4, 76, d)
-# define BOOST_PP_REPEAT_3_78(m, d) BOOST_PP_REPEAT_3_77(m, d) m(4, 77, d)
-# define BOOST_PP_REPEAT_3_79(m, d) BOOST_PP_REPEAT_3_78(m, d) m(4, 78, d)
-# define BOOST_PP_REPEAT_3_80(m, d) BOOST_PP_REPEAT_3_79(m, d) m(4, 79, d)
-# define BOOST_PP_REPEAT_3_81(m, d) BOOST_PP_REPEAT_3_80(m, d) m(4, 80, d)
-# define BOOST_PP_REPEAT_3_82(m, d) BOOST_PP_REPEAT_3_81(m, d) m(4, 81, d)
-# define BOOST_PP_REPEAT_3_83(m, d) BOOST_PP_REPEAT_3_82(m, d) m(4, 82, d)
-# define BOOST_PP_REPEAT_3_84(m, d) BOOST_PP_REPEAT_3_83(m, d) m(4, 83, d)
-# define BOOST_PP_REPEAT_3_85(m, d) BOOST_PP_REPEAT_3_84(m, d) m(4, 84, d)
-# define BOOST_PP_REPEAT_3_86(m, d) BOOST_PP_REPEAT_3_85(m, d) m(4, 85, d)
-# define BOOST_PP_REPEAT_3_87(m, d) BOOST_PP_REPEAT_3_86(m, d) m(4, 86, d)
-# define BOOST_PP_REPEAT_3_88(m, d) BOOST_PP_REPEAT_3_87(m, d) m(4, 87, d)
-# define BOOST_PP_REPEAT_3_89(m, d) BOOST_PP_REPEAT_3_88(m, d) m(4, 88, d)
-# define BOOST_PP_REPEAT_3_90(m, d) BOOST_PP_REPEAT_3_89(m, d) m(4, 89, d)
-# define BOOST_PP_REPEAT_3_91(m, d) BOOST_PP_REPEAT_3_90(m, d) m(4, 90, d)
-# define BOOST_PP_REPEAT_3_92(m, d) BOOST_PP_REPEAT_3_91(m, d) m(4, 91, d)
-# define BOOST_PP_REPEAT_3_93(m, d) BOOST_PP_REPEAT_3_92(m, d) m(4, 92, d)
-# define BOOST_PP_REPEAT_3_94(m, d) BOOST_PP_REPEAT_3_93(m, d) m(4, 93, d)
-# define BOOST_PP_REPEAT_3_95(m, d) BOOST_PP_REPEAT_3_94(m, d) m(4, 94, d)
-# define BOOST_PP_REPEAT_3_96(m, d) BOOST_PP_REPEAT_3_95(m, d) m(4, 95, d)
-# define BOOST_PP_REPEAT_3_97(m, d) BOOST_PP_REPEAT_3_96(m, d) m(4, 96, d)
-# define BOOST_PP_REPEAT_3_98(m, d) BOOST_PP_REPEAT_3_97(m, d) m(4, 97, d)
-# define BOOST_PP_REPEAT_3_99(m, d) BOOST_PP_REPEAT_3_98(m, d) m(4, 98, d)
-# define BOOST_PP_REPEAT_3_100(m, d) BOOST_PP_REPEAT_3_99(m, d) m(4, 99, d)
-# define BOOST_PP_REPEAT_3_101(m, d) BOOST_PP_REPEAT_3_100(m, d) m(4, 100, d)
-# define BOOST_PP_REPEAT_3_102(m, d) BOOST_PP_REPEAT_3_101(m, d) m(4, 101, d)
-# define BOOST_PP_REPEAT_3_103(m, d) BOOST_PP_REPEAT_3_102(m, d) m(4, 102, d)
-# define BOOST_PP_REPEAT_3_104(m, d) BOOST_PP_REPEAT_3_103(m, d) m(4, 103, d)
-# define BOOST_PP_REPEAT_3_105(m, d) BOOST_PP_REPEAT_3_104(m, d) m(4, 104, d)
-# define BOOST_PP_REPEAT_3_106(m, d) BOOST_PP_REPEAT_3_105(m, d) m(4, 105, d)
-# define BOOST_PP_REPEAT_3_107(m, d) BOOST_PP_REPEAT_3_106(m, d) m(4, 106, d)
-# define BOOST_PP_REPEAT_3_108(m, d) BOOST_PP_REPEAT_3_107(m, d) m(4, 107, d)
-# define BOOST_PP_REPEAT_3_109(m, d) BOOST_PP_REPEAT_3_108(m, d) m(4, 108, d)
-# define BOOST_PP_REPEAT_3_110(m, d) BOOST_PP_REPEAT_3_109(m, d) m(4, 109, d)
-# define BOOST_PP_REPEAT_3_111(m, d) BOOST_PP_REPEAT_3_110(m, d) m(4, 110, d)
-# define BOOST_PP_REPEAT_3_112(m, d) BOOST_PP_REPEAT_3_111(m, d) m(4, 111, d)
-# define BOOST_PP_REPEAT_3_113(m, d) BOOST_PP_REPEAT_3_112(m, d) m(4, 112, d)
-# define BOOST_PP_REPEAT_3_114(m, d) BOOST_PP_REPEAT_3_113(m, d) m(4, 113, d)
-# define BOOST_PP_REPEAT_3_115(m, d) BOOST_PP_REPEAT_3_114(m, d) m(4, 114, d)
-# define BOOST_PP_REPEAT_3_116(m, d) BOOST_PP_REPEAT_3_115(m, d) m(4, 115, d)
-# define BOOST_PP_REPEAT_3_117(m, d) BOOST_PP_REPEAT_3_116(m, d) m(4, 116, d)
-# define BOOST_PP_REPEAT_3_118(m, d) BOOST_PP_REPEAT_3_117(m, d) m(4, 117, d)
-# define BOOST_PP_REPEAT_3_119(m, d) BOOST_PP_REPEAT_3_118(m, d) m(4, 118, d)
-# define BOOST_PP_REPEAT_3_120(m, d) BOOST_PP_REPEAT_3_119(m, d) m(4, 119, d)
-# define BOOST_PP_REPEAT_3_121(m, d) BOOST_PP_REPEAT_3_120(m, d) m(4, 120, d)
-# define BOOST_PP_REPEAT_3_122(m, d) BOOST_PP_REPEAT_3_121(m, d) m(4, 121, d)
-# define BOOST_PP_REPEAT_3_123(m, d) BOOST_PP_REPEAT_3_122(m, d) m(4, 122, d)
-# define BOOST_PP_REPEAT_3_124(m, d) BOOST_PP_REPEAT_3_123(m, d) m(4, 123, d)
-# define BOOST_PP_REPEAT_3_125(m, d) BOOST_PP_REPEAT_3_124(m, d) m(4, 124, d)
-# define BOOST_PP_REPEAT_3_126(m, d) BOOST_PP_REPEAT_3_125(m, d) m(4, 125, d)
-# define BOOST_PP_REPEAT_3_127(m, d) BOOST_PP_REPEAT_3_126(m, d) m(4, 126, d)
-# define BOOST_PP_REPEAT_3_128(m, d) BOOST_PP_REPEAT_3_127(m, d) m(4, 127, d)
-# define BOOST_PP_REPEAT_3_129(m, d) BOOST_PP_REPEAT_3_128(m, d) m(4, 128, d)
-# define BOOST_PP_REPEAT_3_130(m, d) BOOST_PP_REPEAT_3_129(m, d) m(4, 129, d)
-# define BOOST_PP_REPEAT_3_131(m, d) BOOST_PP_REPEAT_3_130(m, d) m(4, 130, d)
-# define BOOST_PP_REPEAT_3_132(m, d) BOOST_PP_REPEAT_3_131(m, d) m(4, 131, d)
-# define BOOST_PP_REPEAT_3_133(m, d) BOOST_PP_REPEAT_3_132(m, d) m(4, 132, d)
-# define BOOST_PP_REPEAT_3_134(m, d) BOOST_PP_REPEAT_3_133(m, d) m(4, 133, d)
-# define BOOST_PP_REPEAT_3_135(m, d) BOOST_PP_REPEAT_3_134(m, d) m(4, 134, d)
-# define BOOST_PP_REPEAT_3_136(m, d) BOOST_PP_REPEAT_3_135(m, d) m(4, 135, d)
-# define BOOST_PP_REPEAT_3_137(m, d) BOOST_PP_REPEAT_3_136(m, d) m(4, 136, d)
-# define BOOST_PP_REPEAT_3_138(m, d) BOOST_PP_REPEAT_3_137(m, d) m(4, 137, d)
-# define BOOST_PP_REPEAT_3_139(m, d) BOOST_PP_REPEAT_3_138(m, d) m(4, 138, d)
-# define BOOST_PP_REPEAT_3_140(m, d) BOOST_PP_REPEAT_3_139(m, d) m(4, 139, d)
-# define BOOST_PP_REPEAT_3_141(m, d) BOOST_PP_REPEAT_3_140(m, d) m(4, 140, d)
-# define BOOST_PP_REPEAT_3_142(m, d) BOOST_PP_REPEAT_3_141(m, d) m(4, 141, d)
-# define BOOST_PP_REPEAT_3_143(m, d) BOOST_PP_REPEAT_3_142(m, d) m(4, 142, d)
-# define BOOST_PP_REPEAT_3_144(m, d) BOOST_PP_REPEAT_3_143(m, d) m(4, 143, d)
-# define BOOST_PP_REPEAT_3_145(m, d) BOOST_PP_REPEAT_3_144(m, d) m(4, 144, d)
-# define BOOST_PP_REPEAT_3_146(m, d) BOOST_PP_REPEAT_3_145(m, d) m(4, 145, d)
-# define BOOST_PP_REPEAT_3_147(m, d) BOOST_PP_REPEAT_3_146(m, d) m(4, 146, d)
-# define BOOST_PP_REPEAT_3_148(m, d) BOOST_PP_REPEAT_3_147(m, d) m(4, 147, d)
-# define BOOST_PP_REPEAT_3_149(m, d) BOOST_PP_REPEAT_3_148(m, d) m(4, 148, d)
-# define BOOST_PP_REPEAT_3_150(m, d) BOOST_PP_REPEAT_3_149(m, d) m(4, 149, d)
-# define BOOST_PP_REPEAT_3_151(m, d) BOOST_PP_REPEAT_3_150(m, d) m(4, 150, d)
-# define BOOST_PP_REPEAT_3_152(m, d) BOOST_PP_REPEAT_3_151(m, d) m(4, 151, d)
-# define BOOST_PP_REPEAT_3_153(m, d) BOOST_PP_REPEAT_3_152(m, d) m(4, 152, d)
-# define BOOST_PP_REPEAT_3_154(m, d) BOOST_PP_REPEAT_3_153(m, d) m(4, 153, d)
-# define BOOST_PP_REPEAT_3_155(m, d) BOOST_PP_REPEAT_3_154(m, d) m(4, 154, d)
-# define BOOST_PP_REPEAT_3_156(m, d) BOOST_PP_REPEAT_3_155(m, d) m(4, 155, d)
-# define BOOST_PP_REPEAT_3_157(m, d) BOOST_PP_REPEAT_3_156(m, d) m(4, 156, d)
-# define BOOST_PP_REPEAT_3_158(m, d) BOOST_PP_REPEAT_3_157(m, d) m(4, 157, d)
-# define BOOST_PP_REPEAT_3_159(m, d) BOOST_PP_REPEAT_3_158(m, d) m(4, 158, d)
-# define BOOST_PP_REPEAT_3_160(m, d) BOOST_PP_REPEAT_3_159(m, d) m(4, 159, d)
-# define BOOST_PP_REPEAT_3_161(m, d) BOOST_PP_REPEAT_3_160(m, d) m(4, 160, d)
-# define BOOST_PP_REPEAT_3_162(m, d) BOOST_PP_REPEAT_3_161(m, d) m(4, 161, d)
-# define BOOST_PP_REPEAT_3_163(m, d) BOOST_PP_REPEAT_3_162(m, d) m(4, 162, d)
-# define BOOST_PP_REPEAT_3_164(m, d) BOOST_PP_REPEAT_3_163(m, d) m(4, 163, d)
-# define BOOST_PP_REPEAT_3_165(m, d) BOOST_PP_REPEAT_3_164(m, d) m(4, 164, d)
-# define BOOST_PP_REPEAT_3_166(m, d) BOOST_PP_REPEAT_3_165(m, d) m(4, 165, d)
-# define BOOST_PP_REPEAT_3_167(m, d) BOOST_PP_REPEAT_3_166(m, d) m(4, 166, d)
-# define BOOST_PP_REPEAT_3_168(m, d) BOOST_PP_REPEAT_3_167(m, d) m(4, 167, d)
-# define BOOST_PP_REPEAT_3_169(m, d) BOOST_PP_REPEAT_3_168(m, d) m(4, 168, d)
-# define BOOST_PP_REPEAT_3_170(m, d) BOOST_PP_REPEAT_3_169(m, d) m(4, 169, d)
-# define BOOST_PP_REPEAT_3_171(m, d) BOOST_PP_REPEAT_3_170(m, d) m(4, 170, d)
-# define BOOST_PP_REPEAT_3_172(m, d) BOOST_PP_REPEAT_3_171(m, d) m(4, 171, d)
-# define BOOST_PP_REPEAT_3_173(m, d) BOOST_PP_REPEAT_3_172(m, d) m(4, 172, d)
-# define BOOST_PP_REPEAT_3_174(m, d) BOOST_PP_REPEAT_3_173(m, d) m(4, 173, d)
-# define BOOST_PP_REPEAT_3_175(m, d) BOOST_PP_REPEAT_3_174(m, d) m(4, 174, d)
-# define BOOST_PP_REPEAT_3_176(m, d) BOOST_PP_REPEAT_3_175(m, d) m(4, 175, d)
-# define BOOST_PP_REPEAT_3_177(m, d) BOOST_PP_REPEAT_3_176(m, d) m(4, 176, d)
-# define BOOST_PP_REPEAT_3_178(m, d) BOOST_PP_REPEAT_3_177(m, d) m(4, 177, d)
-# define BOOST_PP_REPEAT_3_179(m, d) BOOST_PP_REPEAT_3_178(m, d) m(4, 178, d)
-# define BOOST_PP_REPEAT_3_180(m, d) BOOST_PP_REPEAT_3_179(m, d) m(4, 179, d)
-# define BOOST_PP_REPEAT_3_181(m, d) BOOST_PP_REPEAT_3_180(m, d) m(4, 180, d)
-# define BOOST_PP_REPEAT_3_182(m, d) BOOST_PP_REPEAT_3_181(m, d) m(4, 181, d)
-# define BOOST_PP_REPEAT_3_183(m, d) BOOST_PP_REPEAT_3_182(m, d) m(4, 182, d)
-# define BOOST_PP_REPEAT_3_184(m, d) BOOST_PP_REPEAT_3_183(m, d) m(4, 183, d)
-# define BOOST_PP_REPEAT_3_185(m, d) BOOST_PP_REPEAT_3_184(m, d) m(4, 184, d)
-# define BOOST_PP_REPEAT_3_186(m, d) BOOST_PP_REPEAT_3_185(m, d) m(4, 185, d)
-# define BOOST_PP_REPEAT_3_187(m, d) BOOST_PP_REPEAT_3_186(m, d) m(4, 186, d)
-# define BOOST_PP_REPEAT_3_188(m, d) BOOST_PP_REPEAT_3_187(m, d) m(4, 187, d)
-# define BOOST_PP_REPEAT_3_189(m, d) BOOST_PP_REPEAT_3_188(m, d) m(4, 188, d)
-# define BOOST_PP_REPEAT_3_190(m, d) BOOST_PP_REPEAT_3_189(m, d) m(4, 189, d)
-# define BOOST_PP_REPEAT_3_191(m, d) BOOST_PP_REPEAT_3_190(m, d) m(4, 190, d)
-# define BOOST_PP_REPEAT_3_192(m, d) BOOST_PP_REPEAT_3_191(m, d) m(4, 191, d)
-# define BOOST_PP_REPEAT_3_193(m, d) BOOST_PP_REPEAT_3_192(m, d) m(4, 192, d)
-# define BOOST_PP_REPEAT_3_194(m, d) BOOST_PP_REPEAT_3_193(m, d) m(4, 193, d)
-# define BOOST_PP_REPEAT_3_195(m, d) BOOST_PP_REPEAT_3_194(m, d) m(4, 194, d)
-# define BOOST_PP_REPEAT_3_196(m, d) BOOST_PP_REPEAT_3_195(m, d) m(4, 195, d)
-# define BOOST_PP_REPEAT_3_197(m, d) BOOST_PP_REPEAT_3_196(m, d) m(4, 196, d)
-# define BOOST_PP_REPEAT_3_198(m, d) BOOST_PP_REPEAT_3_197(m, d) m(4, 197, d)
-# define BOOST_PP_REPEAT_3_199(m, d) BOOST_PP_REPEAT_3_198(m, d) m(4, 198, d)
-# define BOOST_PP_REPEAT_3_200(m, d) BOOST_PP_REPEAT_3_199(m, d) m(4, 199, d)
-# define BOOST_PP_REPEAT_3_201(m, d) BOOST_PP_REPEAT_3_200(m, d) m(4, 200, d)
-# define BOOST_PP_REPEAT_3_202(m, d) BOOST_PP_REPEAT_3_201(m, d) m(4, 201, d)
-# define BOOST_PP_REPEAT_3_203(m, d) BOOST_PP_REPEAT_3_202(m, d) m(4, 202, d)
-# define BOOST_PP_REPEAT_3_204(m, d) BOOST_PP_REPEAT_3_203(m, d) m(4, 203, d)
-# define BOOST_PP_REPEAT_3_205(m, d) BOOST_PP_REPEAT_3_204(m, d) m(4, 204, d)
-# define BOOST_PP_REPEAT_3_206(m, d) BOOST_PP_REPEAT_3_205(m, d) m(4, 205, d)
-# define BOOST_PP_REPEAT_3_207(m, d) BOOST_PP_REPEAT_3_206(m, d) m(4, 206, d)
-# define BOOST_PP_REPEAT_3_208(m, d) BOOST_PP_REPEAT_3_207(m, d) m(4, 207, d)
-# define BOOST_PP_REPEAT_3_209(m, d) BOOST_PP_REPEAT_3_208(m, d) m(4, 208, d)
-# define BOOST_PP_REPEAT_3_210(m, d) BOOST_PP_REPEAT_3_209(m, d) m(4, 209, d)
-# define BOOST_PP_REPEAT_3_211(m, d) BOOST_PP_REPEAT_3_210(m, d) m(4, 210, d)
-# define BOOST_PP_REPEAT_3_212(m, d) BOOST_PP_REPEAT_3_211(m, d) m(4, 211, d)
-# define BOOST_PP_REPEAT_3_213(m, d) BOOST_PP_REPEAT_3_212(m, d) m(4, 212, d)
-# define BOOST_PP_REPEAT_3_214(m, d) BOOST_PP_REPEAT_3_213(m, d) m(4, 213, d)
-# define BOOST_PP_REPEAT_3_215(m, d) BOOST_PP_REPEAT_3_214(m, d) m(4, 214, d)
-# define BOOST_PP_REPEAT_3_216(m, d) BOOST_PP_REPEAT_3_215(m, d) m(4, 215, d)
-# define BOOST_PP_REPEAT_3_217(m, d) BOOST_PP_REPEAT_3_216(m, d) m(4, 216, d)
-# define BOOST_PP_REPEAT_3_218(m, d) BOOST_PP_REPEAT_3_217(m, d) m(4, 217, d)
-# define BOOST_PP_REPEAT_3_219(m, d) BOOST_PP_REPEAT_3_218(m, d) m(4, 218, d)
-# define BOOST_PP_REPEAT_3_220(m, d) BOOST_PP_REPEAT_3_219(m, d) m(4, 219, d)
-# define BOOST_PP_REPEAT_3_221(m, d) BOOST_PP_REPEAT_3_220(m, d) m(4, 220, d)
-# define BOOST_PP_REPEAT_3_222(m, d) BOOST_PP_REPEAT_3_221(m, d) m(4, 221, d)
-# define BOOST_PP_REPEAT_3_223(m, d) BOOST_PP_REPEAT_3_222(m, d) m(4, 222, d)
-# define BOOST_PP_REPEAT_3_224(m, d) BOOST_PP_REPEAT_3_223(m, d) m(4, 223, d)
-# define BOOST_PP_REPEAT_3_225(m, d) BOOST_PP_REPEAT_3_224(m, d) m(4, 224, d)
-# define BOOST_PP_REPEAT_3_226(m, d) BOOST_PP_REPEAT_3_225(m, d) m(4, 225, d)
-# define BOOST_PP_REPEAT_3_227(m, d) BOOST_PP_REPEAT_3_226(m, d) m(4, 226, d)
-# define BOOST_PP_REPEAT_3_228(m, d) BOOST_PP_REPEAT_3_227(m, d) m(4, 227, d)
-# define BOOST_PP_REPEAT_3_229(m, d) BOOST_PP_REPEAT_3_228(m, d) m(4, 228, d)
-# define BOOST_PP_REPEAT_3_230(m, d) BOOST_PP_REPEAT_3_229(m, d) m(4, 229, d)
-# define BOOST_PP_REPEAT_3_231(m, d) BOOST_PP_REPEAT_3_230(m, d) m(4, 230, d)
-# define BOOST_PP_REPEAT_3_232(m, d) BOOST_PP_REPEAT_3_231(m, d) m(4, 231, d)
-# define BOOST_PP_REPEAT_3_233(m, d) BOOST_PP_REPEAT_3_232(m, d) m(4, 232, d)
-# define BOOST_PP_REPEAT_3_234(m, d) BOOST_PP_REPEAT_3_233(m, d) m(4, 233, d)
-# define BOOST_PP_REPEAT_3_235(m, d) BOOST_PP_REPEAT_3_234(m, d) m(4, 234, d)
-# define BOOST_PP_REPEAT_3_236(m, d) BOOST_PP_REPEAT_3_235(m, d) m(4, 235, d)
-# define BOOST_PP_REPEAT_3_237(m, d) BOOST_PP_REPEAT_3_236(m, d) m(4, 236, d)
-# define BOOST_PP_REPEAT_3_238(m, d) BOOST_PP_REPEAT_3_237(m, d) m(4, 237, d)
-# define BOOST_PP_REPEAT_3_239(m, d) BOOST_PP_REPEAT_3_238(m, d) m(4, 238, d)
-# define BOOST_PP_REPEAT_3_240(m, d) BOOST_PP_REPEAT_3_239(m, d) m(4, 239, d)
-# define BOOST_PP_REPEAT_3_241(m, d) BOOST_PP_REPEAT_3_240(m, d) m(4, 240, d)
-# define BOOST_PP_REPEAT_3_242(m, d) BOOST_PP_REPEAT_3_241(m, d) m(4, 241, d)
-# define BOOST_PP_REPEAT_3_243(m, d) BOOST_PP_REPEAT_3_242(m, d) m(4, 242, d)
-# define BOOST_PP_REPEAT_3_244(m, d) BOOST_PP_REPEAT_3_243(m, d) m(4, 243, d)
-# define BOOST_PP_REPEAT_3_245(m, d) BOOST_PP_REPEAT_3_244(m, d) m(4, 244, d)
-# define BOOST_PP_REPEAT_3_246(m, d) BOOST_PP_REPEAT_3_245(m, d) m(4, 245, d)
-# define BOOST_PP_REPEAT_3_247(m, d) BOOST_PP_REPEAT_3_246(m, d) m(4, 246, d)
-# define BOOST_PP_REPEAT_3_248(m, d) BOOST_PP_REPEAT_3_247(m, d) m(4, 247, d)
-# define BOOST_PP_REPEAT_3_249(m, d) BOOST_PP_REPEAT_3_248(m, d) m(4, 248, d)
-# define BOOST_PP_REPEAT_3_250(m, d) BOOST_PP_REPEAT_3_249(m, d) m(4, 249, d)
-# define BOOST_PP_REPEAT_3_251(m, d) BOOST_PP_REPEAT_3_250(m, d) m(4, 250, d)
-# define BOOST_PP_REPEAT_3_252(m, d) BOOST_PP_REPEAT_3_251(m, d) m(4, 251, d)
-# define BOOST_PP_REPEAT_3_253(m, d) BOOST_PP_REPEAT_3_252(m, d) m(4, 252, d)
-# define BOOST_PP_REPEAT_3_254(m, d) BOOST_PP_REPEAT_3_253(m, d) m(4, 253, d)
-# define BOOST_PP_REPEAT_3_255(m, d) BOOST_PP_REPEAT_3_254(m, d) m(4, 254, d)
-# define BOOST_PP_REPEAT_3_256(m, d) BOOST_PP_REPEAT_3_255(m, d) m(4, 255, d)
-#
-# endif
+++ /dev/null
-# /* 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_STRINGIZE_HPP
-# define BOOST_PREPROCESSOR_STRINGIZE_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_STRINGIZE */
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_A((text))
-# define BOOST_PP_STRINGIZE_A(arg) BOOST_PP_STRINGIZE_B ## (arg)
-# define BOOST_PP_STRINGIZE_B(arg) BOOST_PP_STRINGIZE_I ## arg
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_OO((text))
-# define BOOST_PP_STRINGIZE_OO(par) BOOST_PP_STRINGIZE_I ## par
-# else
-# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_I(text)
-# endif
-#
-# define BOOST_PP_STRINGIZE_I(text) #text
-#
-# endif
+++ /dev/null
-# /* 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_TUPLE_EAT_HPP
-# define BOOST_PREPROCESSOR_TUPLE_EAT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_TUPLE_EAT */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size)
-# else
-# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size))
-# define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par
-# endif
-#
-# define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size
-#
-# define BOOST_PP_TUPLE_EAT_0()
-# define BOOST_PP_TUPLE_EAT_1(a)
-# define BOOST_PP_TUPLE_EAT_2(a, b)
-# define BOOST_PP_TUPLE_EAT_3(a, b, c)
-# define BOOST_PP_TUPLE_EAT_4(a, b, c, d)
-# define BOOST_PP_TUPLE_EAT_5(a, b, c, d, e)
-# define BOOST_PP_TUPLE_EAT_6(a, b, c, d, e, f)
-# define BOOST_PP_TUPLE_EAT_7(a, b, c, d, e, f, g)
-# define BOOST_PP_TUPLE_EAT_8(a, b, c, d, e, f, g, h)
-# define BOOST_PP_TUPLE_EAT_9(a, b, c, d, e, f, g, h, i)
-# define BOOST_PP_TUPLE_EAT_10(a, b, c, d, e, f, g, h, i, j)
-# define BOOST_PP_TUPLE_EAT_11(a, b, c, d, e, f, g, h, i, j, k)
-# define BOOST_PP_TUPLE_EAT_12(a, b, c, d, e, f, g, h, i, j, k, l)
-# define BOOST_PP_TUPLE_EAT_13(a, b, c, d, e, f, g, h, i, j, k, l, m)
-# define BOOST_PP_TUPLE_EAT_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n)
-# define BOOST_PP_TUPLE_EAT_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-# define BOOST_PP_TUPLE_EAT_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
-# define BOOST_PP_TUPLE_EAT_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)
-# define BOOST_PP_TUPLE_EAT_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r)
-# define BOOST_PP_TUPLE_EAT_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s)
-# define BOOST_PP_TUPLE_EAT_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t)
-# define BOOST_PP_TUPLE_EAT_21(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_EAT_22(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_EAT_23(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_EAT_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)
-# define BOOST_PP_TUPLE_EAT_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)
-#
-# endif
+++ /dev/null
-# /* 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_TUPLE_ELEM_HPP
-# define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_ELEM(size, index, tuple) BOOST_PP_TUPLE_ELEM_I(size, index, tuple)
-# else
-# define BOOST_PP_TUPLE_ELEM(size, index, tuple) BOOST_PP_TUPLE_ELEM_OO((size, index, tuple))
-# define BOOST_PP_TUPLE_ELEM_OO(par) BOOST_PP_TUPLE_ELEM_I ## par
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i ## t
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_II(BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i t)
-# define BOOST_PP_TUPLE_ELEM_II(res) res
-# else
-# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i t
-# endif
-#
-# define BOOST_PP_TUPLE_ELEM_1_0(a) a
-#
-# define BOOST_PP_TUPLE_ELEM_2_0(a, b) a
-# define BOOST_PP_TUPLE_ELEM_2_1(a, b) b
-#
-# define BOOST_PP_TUPLE_ELEM_3_0(a, b, c) a
-# define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b
-# define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c
-#
-# define BOOST_PP_TUPLE_ELEM_4_0(a, b, c, d) a
-# define BOOST_PP_TUPLE_ELEM_4_1(a, b, c, d) b
-# define BOOST_PP_TUPLE_ELEM_4_2(a, b, c, d) c
-# define BOOST_PP_TUPLE_ELEM_4_3(a, b, c, d) d
-#
-# define BOOST_PP_TUPLE_ELEM_5_0(a, b, c, d, e) a
-# define BOOST_PP_TUPLE_ELEM_5_1(a, b, c, d, e) b
-# define BOOST_PP_TUPLE_ELEM_5_2(a, b, c, d, e) c
-# define BOOST_PP_TUPLE_ELEM_5_3(a, b, c, d, e) d
-# define BOOST_PP_TUPLE_ELEM_5_4(a, b, c, d, e) e
-#
-# define BOOST_PP_TUPLE_ELEM_6_0(a, b, c, d, e, f) a
-# define BOOST_PP_TUPLE_ELEM_6_1(a, b, c, d, e, f) b
-# define BOOST_PP_TUPLE_ELEM_6_2(a, b, c, d, e, f) c
-# define BOOST_PP_TUPLE_ELEM_6_3(a, b, c, d, e, f) d
-# define BOOST_PP_TUPLE_ELEM_6_4(a, b, c, d, e, f) e
-# define BOOST_PP_TUPLE_ELEM_6_5(a, b, c, d, e, f) f
-#
-# define BOOST_PP_TUPLE_ELEM_7_0(a, b, c, d, e, f, g) a
-# define BOOST_PP_TUPLE_ELEM_7_1(a, b, c, d, e, f, g) b
-# define BOOST_PP_TUPLE_ELEM_7_2(a, b, c, d, e, f, g) c
-# define BOOST_PP_TUPLE_ELEM_7_3(a, b, c, d, e, f, g) d
-# define BOOST_PP_TUPLE_ELEM_7_4(a, b, c, d, e, f, g) e
-# define BOOST_PP_TUPLE_ELEM_7_5(a, b, c, d, e, f, g) f
-# define BOOST_PP_TUPLE_ELEM_7_6(a, b, c, d, e, f, g) g
-#
-# define BOOST_PP_TUPLE_ELEM_8_0(a, b, c, d, e, f, g, h) a
-# define BOOST_PP_TUPLE_ELEM_8_1(a, b, c, d, e, f, g, h) b
-# define BOOST_PP_TUPLE_ELEM_8_2(a, b, c, d, e, f, g, h) c
-# define BOOST_PP_TUPLE_ELEM_8_3(a, b, c, d, e, f, g, h) d
-# define BOOST_PP_TUPLE_ELEM_8_4(a, b, c, d, e, f, g, h) e
-# define BOOST_PP_TUPLE_ELEM_8_5(a, b, c, d, e, f, g, h) f
-# define BOOST_PP_TUPLE_ELEM_8_6(a, b, c, d, e, f, g, h) g
-# define BOOST_PP_TUPLE_ELEM_8_7(a, b, c, d, e, f, g, h) h
-#
-# define BOOST_PP_TUPLE_ELEM_9_0(a, b, c, d, e, f, g, h, i) a
-# define BOOST_PP_TUPLE_ELEM_9_1(a, b, c, d, e, f, g, h, i) b
-# define BOOST_PP_TUPLE_ELEM_9_2(a, b, c, d, e, f, g, h, i) c
-# define BOOST_PP_TUPLE_ELEM_9_3(a, b, c, d, e, f, g, h, i) d
-# define BOOST_PP_TUPLE_ELEM_9_4(a, b, c, d, e, f, g, h, i) e
-# define BOOST_PP_TUPLE_ELEM_9_5(a, b, c, d, e, f, g, h, i) f
-# define BOOST_PP_TUPLE_ELEM_9_6(a, b, c, d, e, f, g, h, i) g
-# define BOOST_PP_TUPLE_ELEM_9_7(a, b, c, d, e, f, g, h, i) h
-# define BOOST_PP_TUPLE_ELEM_9_8(a, b, c, d, e, f, g, h, i) i
-#
-# define BOOST_PP_TUPLE_ELEM_10_0(a, b, c, d, e, f, g, h, i, j) a
-# define BOOST_PP_TUPLE_ELEM_10_1(a, b, c, d, e, f, g, h, i, j) b
-# define BOOST_PP_TUPLE_ELEM_10_2(a, b, c, d, e, f, g, h, i, j) c
-# define BOOST_PP_TUPLE_ELEM_10_3(a, b, c, d, e, f, g, h, i, j) d
-# define BOOST_PP_TUPLE_ELEM_10_4(a, b, c, d, e, f, g, h, i, j) e
-# define BOOST_PP_TUPLE_ELEM_10_5(a, b, c, d, e, f, g, h, i, j) f
-# define BOOST_PP_TUPLE_ELEM_10_6(a, b, c, d, e, f, g, h, i, j) g
-# define BOOST_PP_TUPLE_ELEM_10_7(a, b, c, d, e, f, g, h, i, j) h
-# define BOOST_PP_TUPLE_ELEM_10_8(a, b, c, d, e, f, g, h, i, j) i
-# define BOOST_PP_TUPLE_ELEM_10_9(a, b, c, d, e, f, g, h, i, j) j
-#
-# define BOOST_PP_TUPLE_ELEM_11_0(a, b, c, d, e, f, g, h, i, j, k) a
-# define BOOST_PP_TUPLE_ELEM_11_1(a, b, c, d, e, f, g, h, i, j, k) b
-# define BOOST_PP_TUPLE_ELEM_11_2(a, b, c, d, e, f, g, h, i, j, k) c
-# define BOOST_PP_TUPLE_ELEM_11_3(a, b, c, d, e, f, g, h, i, j, k) d
-# define BOOST_PP_TUPLE_ELEM_11_4(a, b, c, d, e, f, g, h, i, j, k) e
-# define BOOST_PP_TUPLE_ELEM_11_5(a, b, c, d, e, f, g, h, i, j, k) f
-# define BOOST_PP_TUPLE_ELEM_11_6(a, b, c, d, e, f, g, h, i, j, k) g
-# define BOOST_PP_TUPLE_ELEM_11_7(a, b, c, d, e, f, g, h, i, j, k) h
-# define BOOST_PP_TUPLE_ELEM_11_8(a, b, c, d, e, f, g, h, i, j, k) i
-# define BOOST_PP_TUPLE_ELEM_11_9(a, b, c, d, e, f, g, h, i, j, k) j
-# define BOOST_PP_TUPLE_ELEM_11_10(a, b, c, d, e, f, g, h, i, j, k) k
-#
-# define BOOST_PP_TUPLE_ELEM_12_0(a, b, c, d, e, f, g, h, i, j, k, l) a
-# define BOOST_PP_TUPLE_ELEM_12_1(a, b, c, d, e, f, g, h, i, j, k, l) b
-# define BOOST_PP_TUPLE_ELEM_12_2(a, b, c, d, e, f, g, h, i, j, k, l) c
-# define BOOST_PP_TUPLE_ELEM_12_3(a, b, c, d, e, f, g, h, i, j, k, l) d
-# define BOOST_PP_TUPLE_ELEM_12_4(a, b, c, d, e, f, g, h, i, j, k, l) e
-# define BOOST_PP_TUPLE_ELEM_12_5(a, b, c, d, e, f, g, h, i, j, k, l) f
-# define BOOST_PP_TUPLE_ELEM_12_6(a, b, c, d, e, f, g, h, i, j, k, l) g
-# define BOOST_PP_TUPLE_ELEM_12_7(a, b, c, d, e, f, g, h, i, j, k, l) h
-# define BOOST_PP_TUPLE_ELEM_12_8(a, b, c, d, e, f, g, h, i, j, k, l) i
-# define BOOST_PP_TUPLE_ELEM_12_9(a, b, c, d, e, f, g, h, i, j, k, l) j
-# define BOOST_PP_TUPLE_ELEM_12_10(a, b, c, d, e, f, g, h, i, j, k, l) k
-# define BOOST_PP_TUPLE_ELEM_12_11(a, b, c, d, e, f, g, h, i, j, k, l) l
-#
-# define BOOST_PP_TUPLE_ELEM_13_0(a, b, c, d, e, f, g, h, i, j, k, l, m) a
-# define BOOST_PP_TUPLE_ELEM_13_1(a, b, c, d, e, f, g, h, i, j, k, l, m) b
-# define BOOST_PP_TUPLE_ELEM_13_2(a, b, c, d, e, f, g, h, i, j, k, l, m) c
-# define BOOST_PP_TUPLE_ELEM_13_3(a, b, c, d, e, f, g, h, i, j, k, l, m) d
-# define BOOST_PP_TUPLE_ELEM_13_4(a, b, c, d, e, f, g, h, i, j, k, l, m) e
-# define BOOST_PP_TUPLE_ELEM_13_5(a, b, c, d, e, f, g, h, i, j, k, l, m) f
-# define BOOST_PP_TUPLE_ELEM_13_6(a, b, c, d, e, f, g, h, i, j, k, l, m) g
-# define BOOST_PP_TUPLE_ELEM_13_7(a, b, c, d, e, f, g, h, i, j, k, l, m) h
-# define BOOST_PP_TUPLE_ELEM_13_8(a, b, c, d, e, f, g, h, i, j, k, l, m) i
-# define BOOST_PP_TUPLE_ELEM_13_9(a, b, c, d, e, f, g, h, i, j, k, l, m) j
-# define BOOST_PP_TUPLE_ELEM_13_10(a, b, c, d, e, f, g, h, i, j, k, l, m) k
-# define BOOST_PP_TUPLE_ELEM_13_11(a, b, c, d, e, f, g, h, i, j, k, l, m) l
-# define BOOST_PP_TUPLE_ELEM_13_12(a, b, c, d, e, f, g, h, i, j, k, l, m) m
-#
-# define BOOST_PP_TUPLE_ELEM_14_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n) a
-# define BOOST_PP_TUPLE_ELEM_14_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n) b
-# define BOOST_PP_TUPLE_ELEM_14_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n) c
-# define BOOST_PP_TUPLE_ELEM_14_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n) d
-# define BOOST_PP_TUPLE_ELEM_14_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n) e
-# define BOOST_PP_TUPLE_ELEM_14_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n) f
-# define BOOST_PP_TUPLE_ELEM_14_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n) g
-# define BOOST_PP_TUPLE_ELEM_14_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n) h
-# define BOOST_PP_TUPLE_ELEM_14_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n) i
-# define BOOST_PP_TUPLE_ELEM_14_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n) j
-# define BOOST_PP_TUPLE_ELEM_14_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n) k
-# define BOOST_PP_TUPLE_ELEM_14_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n) l
-# define BOOST_PP_TUPLE_ELEM_14_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n) m
-# define BOOST_PP_TUPLE_ELEM_14_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n) n
-#
-# define BOOST_PP_TUPLE_ELEM_15_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) a
-# define BOOST_PP_TUPLE_ELEM_15_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) b
-# define BOOST_PP_TUPLE_ELEM_15_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) c
-# define BOOST_PP_TUPLE_ELEM_15_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) d
-# define BOOST_PP_TUPLE_ELEM_15_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) e
-# define BOOST_PP_TUPLE_ELEM_15_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) f
-# define BOOST_PP_TUPLE_ELEM_15_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) g
-# define BOOST_PP_TUPLE_ELEM_15_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) h
-# define BOOST_PP_TUPLE_ELEM_15_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) i
-# define BOOST_PP_TUPLE_ELEM_15_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) j
-# define BOOST_PP_TUPLE_ELEM_15_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) k
-# define BOOST_PP_TUPLE_ELEM_15_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) l
-# define BOOST_PP_TUPLE_ELEM_15_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) m
-# define BOOST_PP_TUPLE_ELEM_15_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) n
-# define BOOST_PP_TUPLE_ELEM_15_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) o
-#
-# define BOOST_PP_TUPLE_ELEM_16_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) a
-# define BOOST_PP_TUPLE_ELEM_16_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) b
-# define BOOST_PP_TUPLE_ELEM_16_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) c
-# define BOOST_PP_TUPLE_ELEM_16_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) d
-# define BOOST_PP_TUPLE_ELEM_16_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) e
-# define BOOST_PP_TUPLE_ELEM_16_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) f
-# define BOOST_PP_TUPLE_ELEM_16_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) g
-# define BOOST_PP_TUPLE_ELEM_16_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) h
-# define BOOST_PP_TUPLE_ELEM_16_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) i
-# define BOOST_PP_TUPLE_ELEM_16_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) j
-# define BOOST_PP_TUPLE_ELEM_16_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) k
-# define BOOST_PP_TUPLE_ELEM_16_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) l
-# define BOOST_PP_TUPLE_ELEM_16_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) m
-# define BOOST_PP_TUPLE_ELEM_16_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) n
-# define BOOST_PP_TUPLE_ELEM_16_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) o
-# define BOOST_PP_TUPLE_ELEM_16_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) p
-#
-# define BOOST_PP_TUPLE_ELEM_17_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) a
-# define BOOST_PP_TUPLE_ELEM_17_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) b
-# define BOOST_PP_TUPLE_ELEM_17_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) c
-# define BOOST_PP_TUPLE_ELEM_17_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) d
-# define BOOST_PP_TUPLE_ELEM_17_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) e
-# define BOOST_PP_TUPLE_ELEM_17_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) f
-# define BOOST_PP_TUPLE_ELEM_17_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) g
-# define BOOST_PP_TUPLE_ELEM_17_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) h
-# define BOOST_PP_TUPLE_ELEM_17_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) i
-# define BOOST_PP_TUPLE_ELEM_17_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) j
-# define BOOST_PP_TUPLE_ELEM_17_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) k
-# define BOOST_PP_TUPLE_ELEM_17_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) l
-# define BOOST_PP_TUPLE_ELEM_17_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) m
-# define BOOST_PP_TUPLE_ELEM_17_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) n
-# define BOOST_PP_TUPLE_ELEM_17_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) o
-# define BOOST_PP_TUPLE_ELEM_17_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) p
-# define BOOST_PP_TUPLE_ELEM_17_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) q
-#
-# define BOOST_PP_TUPLE_ELEM_18_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) a
-# define BOOST_PP_TUPLE_ELEM_18_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) b
-# define BOOST_PP_TUPLE_ELEM_18_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) c
-# define BOOST_PP_TUPLE_ELEM_18_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) d
-# define BOOST_PP_TUPLE_ELEM_18_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) e
-# define BOOST_PP_TUPLE_ELEM_18_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) f
-# define BOOST_PP_TUPLE_ELEM_18_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) g
-# define BOOST_PP_TUPLE_ELEM_18_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) h
-# define BOOST_PP_TUPLE_ELEM_18_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) i
-# define BOOST_PP_TUPLE_ELEM_18_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) j
-# define BOOST_PP_TUPLE_ELEM_18_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) k
-# define BOOST_PP_TUPLE_ELEM_18_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) l
-# define BOOST_PP_TUPLE_ELEM_18_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) m
-# define BOOST_PP_TUPLE_ELEM_18_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) n
-# define BOOST_PP_TUPLE_ELEM_18_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) o
-# define BOOST_PP_TUPLE_ELEM_18_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) p
-# define BOOST_PP_TUPLE_ELEM_18_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) q
-# define BOOST_PP_TUPLE_ELEM_18_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) r
-#
-# define BOOST_PP_TUPLE_ELEM_19_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) a
-# define BOOST_PP_TUPLE_ELEM_19_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) b
-# define BOOST_PP_TUPLE_ELEM_19_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) c
-# define BOOST_PP_TUPLE_ELEM_19_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) d
-# define BOOST_PP_TUPLE_ELEM_19_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) e
-# define BOOST_PP_TUPLE_ELEM_19_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) f
-# define BOOST_PP_TUPLE_ELEM_19_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) g
-# define BOOST_PP_TUPLE_ELEM_19_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) h
-# define BOOST_PP_TUPLE_ELEM_19_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) i
-# define BOOST_PP_TUPLE_ELEM_19_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) j
-# define BOOST_PP_TUPLE_ELEM_19_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) k
-# define BOOST_PP_TUPLE_ELEM_19_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) l
-# define BOOST_PP_TUPLE_ELEM_19_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) m
-# define BOOST_PP_TUPLE_ELEM_19_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) n
-# define BOOST_PP_TUPLE_ELEM_19_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) o
-# define BOOST_PP_TUPLE_ELEM_19_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) p
-# define BOOST_PP_TUPLE_ELEM_19_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) q
-# define BOOST_PP_TUPLE_ELEM_19_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) r
-# define BOOST_PP_TUPLE_ELEM_19_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) s
-#
-# define BOOST_PP_TUPLE_ELEM_20_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) a
-# define BOOST_PP_TUPLE_ELEM_20_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) b
-# define BOOST_PP_TUPLE_ELEM_20_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) c
-# define BOOST_PP_TUPLE_ELEM_20_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) d
-# define BOOST_PP_TUPLE_ELEM_20_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) e
-# define BOOST_PP_TUPLE_ELEM_20_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) f
-# define BOOST_PP_TUPLE_ELEM_20_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) g
-# define BOOST_PP_TUPLE_ELEM_20_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) h
-# define BOOST_PP_TUPLE_ELEM_20_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) i
-# define BOOST_PP_TUPLE_ELEM_20_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) j
-# define BOOST_PP_TUPLE_ELEM_20_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) k
-# define BOOST_PP_TUPLE_ELEM_20_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) l
-# define BOOST_PP_TUPLE_ELEM_20_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) m
-# define BOOST_PP_TUPLE_ELEM_20_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) n
-# define BOOST_PP_TUPLE_ELEM_20_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) o
-# define BOOST_PP_TUPLE_ELEM_20_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) p
-# define BOOST_PP_TUPLE_ELEM_20_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) q
-# define BOOST_PP_TUPLE_ELEM_20_17(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_ELEM_20_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) s
-# define BOOST_PP_TUPLE_ELEM_20_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) t
-#
-# define BOOST_PP_TUPLE_ELEM_21_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) a
-# define BOOST_PP_TUPLE_ELEM_21_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) b
-# define BOOST_PP_TUPLE_ELEM_21_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) c
-# define BOOST_PP_TUPLE_ELEM_21_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) d
-# define BOOST_PP_TUPLE_ELEM_21_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) e
-# define BOOST_PP_TUPLE_ELEM_21_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) f
-# define BOOST_PP_TUPLE_ELEM_21_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) g
-# define BOOST_PP_TUPLE_ELEM_21_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) h
-# define BOOST_PP_TUPLE_ELEM_21_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) i
-# define BOOST_PP_TUPLE_ELEM_21_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) j
-# define BOOST_PP_TUPLE_ELEM_21_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) k
-# define BOOST_PP_TUPLE_ELEM_21_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) l
-# define BOOST_PP_TUPLE_ELEM_21_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) m
-# define BOOST_PP_TUPLE_ELEM_21_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) n
-# define BOOST_PP_TUPLE_ELEM_21_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) o
-# define BOOST_PP_TUPLE_ELEM_21_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) p
-# define BOOST_PP_TUPLE_ELEM_21_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) q
-# define BOOST_PP_TUPLE_ELEM_21_17(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_ELEM_21_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) s
-# define BOOST_PP_TUPLE_ELEM_21_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) t
-# define BOOST_PP_TUPLE_ELEM_21_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) u
-#
-# define BOOST_PP_TUPLE_ELEM_22_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) a
-# define BOOST_PP_TUPLE_ELEM_22_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) b
-# define BOOST_PP_TUPLE_ELEM_22_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) c
-# define BOOST_PP_TUPLE_ELEM_22_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) d
-# define BOOST_PP_TUPLE_ELEM_22_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) e
-# define BOOST_PP_TUPLE_ELEM_22_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) f
-# define BOOST_PP_TUPLE_ELEM_22_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) g
-# define BOOST_PP_TUPLE_ELEM_22_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) h
-# define BOOST_PP_TUPLE_ELEM_22_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) i
-# define BOOST_PP_TUPLE_ELEM_22_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) j
-# define BOOST_PP_TUPLE_ELEM_22_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) k
-# define BOOST_PP_TUPLE_ELEM_22_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) l
-# define BOOST_PP_TUPLE_ELEM_22_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) m
-# define BOOST_PP_TUPLE_ELEM_22_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) n
-# define BOOST_PP_TUPLE_ELEM_22_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) o
-# define BOOST_PP_TUPLE_ELEM_22_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) p
-# define BOOST_PP_TUPLE_ELEM_22_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) q
-# define BOOST_PP_TUPLE_ELEM_22_17(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_ELEM_22_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) s
-# define BOOST_PP_TUPLE_ELEM_22_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) t
-# define BOOST_PP_TUPLE_ELEM_22_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) u
-# define BOOST_PP_TUPLE_ELEM_22_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) v
-#
-# define BOOST_PP_TUPLE_ELEM_23_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) a
-# define BOOST_PP_TUPLE_ELEM_23_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) b
-# define BOOST_PP_TUPLE_ELEM_23_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) c
-# define BOOST_PP_TUPLE_ELEM_23_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) d
-# define BOOST_PP_TUPLE_ELEM_23_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) e
-# define BOOST_PP_TUPLE_ELEM_23_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) f
-# define BOOST_PP_TUPLE_ELEM_23_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) g
-# define BOOST_PP_TUPLE_ELEM_23_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) h
-# define BOOST_PP_TUPLE_ELEM_23_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) i
-# define BOOST_PP_TUPLE_ELEM_23_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) j
-# define BOOST_PP_TUPLE_ELEM_23_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) k
-# define BOOST_PP_TUPLE_ELEM_23_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) l
-# define BOOST_PP_TUPLE_ELEM_23_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) m
-# define BOOST_PP_TUPLE_ELEM_23_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) n
-# define BOOST_PP_TUPLE_ELEM_23_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) o
-# define BOOST_PP_TUPLE_ELEM_23_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) p
-# define BOOST_PP_TUPLE_ELEM_23_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) q
-# define BOOST_PP_TUPLE_ELEM_23_17(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_ELEM_23_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) s
-# define BOOST_PP_TUPLE_ELEM_23_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) t
-# define BOOST_PP_TUPLE_ELEM_23_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) u
-# define BOOST_PP_TUPLE_ELEM_23_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) v
-# define BOOST_PP_TUPLE_ELEM_23_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) w
-#
-# define BOOST_PP_TUPLE_ELEM_24_0(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
-# define BOOST_PP_TUPLE_ELEM_24_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) b
-# define BOOST_PP_TUPLE_ELEM_24_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) c
-# define BOOST_PP_TUPLE_ELEM_24_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) d
-# define BOOST_PP_TUPLE_ELEM_24_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) e
-# define BOOST_PP_TUPLE_ELEM_24_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) f
-# define BOOST_PP_TUPLE_ELEM_24_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) g
-# define BOOST_PP_TUPLE_ELEM_24_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) h
-# define BOOST_PP_TUPLE_ELEM_24_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) i
-# define BOOST_PP_TUPLE_ELEM_24_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) j
-# define BOOST_PP_TUPLE_ELEM_24_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) k
-# define BOOST_PP_TUPLE_ELEM_24_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) l
-# define BOOST_PP_TUPLE_ELEM_24_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) m
-# define BOOST_PP_TUPLE_ELEM_24_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) n
-# define BOOST_PP_TUPLE_ELEM_24_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) o
-# define BOOST_PP_TUPLE_ELEM_24_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) p
-# define BOOST_PP_TUPLE_ELEM_24_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) q
-# define BOOST_PP_TUPLE_ELEM_24_17(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_ELEM_24_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) s
-# define BOOST_PP_TUPLE_ELEM_24_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) t
-# define BOOST_PP_TUPLE_ELEM_24_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) u
-# define BOOST_PP_TUPLE_ELEM_24_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) v
-# define BOOST_PP_TUPLE_ELEM_24_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) w
-# define BOOST_PP_TUPLE_ELEM_24_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) x
-#
-# define BOOST_PP_TUPLE_ELEM_25_0(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
-# define BOOST_PP_TUPLE_ELEM_25_1(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) b
-# define BOOST_PP_TUPLE_ELEM_25_2(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) c
-# define BOOST_PP_TUPLE_ELEM_25_3(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) d
-# define BOOST_PP_TUPLE_ELEM_25_4(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) e
-# define BOOST_PP_TUPLE_ELEM_25_5(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) f
-# define BOOST_PP_TUPLE_ELEM_25_6(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) g
-# define BOOST_PP_TUPLE_ELEM_25_7(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) h
-# define BOOST_PP_TUPLE_ELEM_25_8(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) i
-# define BOOST_PP_TUPLE_ELEM_25_9(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) j
-# define BOOST_PP_TUPLE_ELEM_25_10(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) k
-# define BOOST_PP_TUPLE_ELEM_25_11(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) l
-# define BOOST_PP_TUPLE_ELEM_25_12(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) m
-# define BOOST_PP_TUPLE_ELEM_25_13(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) n
-# define BOOST_PP_TUPLE_ELEM_25_14(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) o
-# define BOOST_PP_TUPLE_ELEM_25_15(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) p
-# define BOOST_PP_TUPLE_ELEM_25_16(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) q
-# define BOOST_PP_TUPLE_ELEM_25_17(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
-# define BOOST_PP_TUPLE_ELEM_25_18(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) s
-# define BOOST_PP_TUPLE_ELEM_25_19(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) t
-# define BOOST_PP_TUPLE_ELEM_25_20(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) u
-# define BOOST_PP_TUPLE_ELEM_25_21(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) v
-# define BOOST_PP_TUPLE_ELEM_25_22(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) w
-# define BOOST_PP_TUPLE_ELEM_25_23(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) x
-# define BOOST_PP_TUPLE_ELEM_25_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, y) y
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_REM_HPP
-# define BOOST_PREPROCESSOR_TUPLE_REM_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_TUPLE_REM */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_I(size)
-# else
-# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_OO((size))
-# define BOOST_PP_TUPLE_REM_OO(par) BOOST_PP_TUPLE_REM_I ## par
-# endif
-#
-# define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size
-#
-# define BOOST_PP_TUPLE_REM_0()
-# define BOOST_PP_TUPLE_REM_1(a) a
-# define BOOST_PP_TUPLE_REM_2(a, b) a, b
-# define BOOST_PP_TUPLE_REM_3(a, b, c) a, b, c
-# define BOOST_PP_TUPLE_REM_4(a, b, c, d) a, b, c, d
-# define BOOST_PP_TUPLE_REM_5(a, b, c, d, e) a, b, c, d, e
-# define BOOST_PP_TUPLE_REM_6(a, b, c, d, e, f) a, b, c, d, e, f
-# define BOOST_PP_TUPLE_REM_7(a, b, c, d, e, f, g) a, b, c, d, e, f, g
-# define BOOST_PP_TUPLE_REM_8(a, b, c, d, e, f, g, h) a, b, c, d, e, f, g, h
-# define BOOST_PP_TUPLE_REM_9(a, b, c, d, e, f, g, h, i) a, b, c, d, e, f, g, h, i
-# define BOOST_PP_TUPLE_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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_REM_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
-#
-# /* BOOST_PP_TUPLE_REM_CTOR */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
-# else
-# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_D(size, tuple)
-# define BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
-# else
-# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) BOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple))
-# define BOOST_PP_TUPLE_REM_CTOR_OO(par) BOOST_PP_TUPLE_REM_CTOR_II ## par
-# define BOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
-# endif
-#
-# endif
+++ /dev/null
-# /* 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_TUPLE_TO_LIST_HPP
-# define BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_TUPLE_TO_LIST */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_I(size, tuple)
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s t
-# else
-# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_II(BOOST_PP_TUPLE_TO_LIST_ ## s t)
-# define BOOST_PP_TUPLE_TO_LIST_II(res) res
-# endif
-# else
-# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_OO((size, tuple))
-# define BOOST_PP_TUPLE_TO_LIST_OO(par) BOOST_PP_TUPLE_TO_LIST_I ## par
-# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s ## t
-# endif
-#
-# define BOOST_PP_TUPLE_TO_LIST_0() BOOST_PP_NIL
-# define BOOST_PP_TUPLE_TO_LIST_1(a) (a, BOOST_PP_NIL)
-# define BOOST_PP_TUPLE_TO_LIST_2(a, b) (a, (b, BOOST_PP_NIL))
-# define BOOST_PP_TUPLE_TO_LIST_3(a, b, c) (a, (b, (c, BOOST_PP_NIL)))
-# define BOOST_PP_TUPLE_TO_LIST_4(a, b, c, d) (a, (b, (c, (d, BOOST_PP_NIL))))
-# define BOOST_PP_TUPLE_TO_LIST_5(a, b, c, d, e) (a, (b, (c, (d, (e, BOOST_PP_NIL)))))
-# define BOOST_PP_TUPLE_TO_LIST_6(a, b, c, d, e, f) (a, (b, (c, (d, (e, (f, BOOST_PP_NIL))))))
-# define BOOST_PP_TUPLE_TO_LIST_7(a, b, c, d, e, f, g) (a, (b, (c, (d, (e, (f, (g, BOOST_PP_NIL)))))))
-# define BOOST_PP_TUPLE_TO_LIST_8(a, b, c, d, e, f, g, h) (a, (b, (c, (d, (e, (f, (g, (h, BOOST_PP_NIL))))))))
-# define BOOST_PP_TUPLE_TO_LIST_9(a, b, c, d, e, f, g, h, i) (a, (b, (c, (d, (e, (f, (g, (h, (i, BOOST_PP_NIL)))))))))
-# define BOOST_PP_TUPLE_TO_LIST_10(a, b, c, d, e, f, g, h, i, j) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, BOOST_PP_NIL))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_11(a, b, c, d, e, f, g, h, i, j, k) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, BOOST_PP_NIL)))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_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, BOOST_PP_NIL)))))))))))))))))))))))))
-#
-# endif
+++ /dev/null
-# /* **************************************************************************
-# * *
-# * (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_WHILE_HPP
-# define BOOST_PREPROCESSOR_WHILE_HPP
-#
-# include <boost/preprocessor/control/while.hpp>
-#
-# endif
+++ /dev/null
-// Copyright Vladimir Prus 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 PROGRAM_OPTIONS_VP_2003_05_19
-#define PROGRAM_OPTIONS_VP_2003_05_19
-
-#if _MSC_VER >= 1020
-#pragma once
-#endif
-
-#include <boost/program_options/options_description.hpp>
-#include <boost/program_options/positional_options.hpp>
-#include <boost/program_options/parsers.hpp>
-#include <boost/program_options/variables_map.hpp>
-#include <boost/program_options/cmdline.hpp>
-#include <boost/program_options/errors.hpp>
-#include <boost/program_options/option.hpp>
-#include <boost/program_options/value_semantic.hpp>
-#include <boost/program_options/version.hpp>
-
-#endif
+++ /dev/null
-// boost progress.hpp header file ------------------------------------------//
-
-// Copyright Beman Dawes 1994-99. Distributed under the 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/timer for documentation.
-
-// Revision History
-// 1 Dec 01 Add leading progress display strings (suggested by Toon Knapen)
-// 20 May 01 Introduce several static_casts<> to eliminate warning messages
-// (Fixed by Beman, reported by Herve Bronnimann)
-// 12 Jan 01 Change to inline implementation to allow use without library
-// builds. See docs for more rationale. (Beman Dawes)
-// 22 Jul 99 Name changed to .hpp
-// 16 Jul 99 Second beta
-// 6 Jul 99 Initial boost version
-
-#ifndef BOOST_PROGRESS_HPP
-#define BOOST_PROGRESS_HPP
-
-#include <boost/timer.hpp>
-#include <boost/utility.hpp> // for noncopyable
-#include <boost/cstdint.hpp> // for uintmax_t
-#include <iostream> // for ostream, cout, etc
-#include <string> // for string
-
-namespace boost {
-
-// progress_timer ----------------------------------------------------------//
-
-// A progress_timer behaves like a timer except that the destructor displays
-// an elapsed time message at an appropriate place in an appropriate form.
-
-class progress_timer : public timer, private noncopyable
-{
-
- public:
- explicit progress_timer( std::ostream & os = std::cout )
- // os is hint; implementation may ignore, particularly in embedded systems
- : m_os(os) {}
- ~progress_timer()
- {
- // A) Throwing an exception from a destructor is a Bad Thing.
- // B) The progress_timer destructor does output which may throw.
- // C) A progress_timer is usually not critical to the application.
- // Therefore, wrap the I/O in a try block, catch and ignore all exceptions.
- try
- {
- // use istream instead of ios_base to workaround GNU problem (Greg Chicares)
- std::istream::fmtflags old_flags = m_os.setf( std::istream::fixed,
- std::istream::floatfield );
- std::streamsize old_prec = m_os.precision( 2 );
- m_os << elapsed() << " s\n" // "s" is System International d'Unités std
- << std::endl;
- m_os.flags( old_flags );
- m_os.precision( old_prec );
- }
-
- catch (...) {} // eat any exceptions
- } // ~progress_timer
-
- private:
- std::ostream & m_os;
-};
-
-
-// progress_display --------------------------------------------------------//
-
-// progress_display displays an appropriate indication of
-// progress at an appropriate place in an appropriate form.
-
-// NOTE: (Jan 12, 2001) Tried to change unsigned long to boost::uintmax_t, but
-// found some compilers couldn't handle the required conversion to double.
-// Reverted to unsigned long until the compilers catch up.
-
-class progress_display : private noncopyable
-{
- public:
- explicit progress_display( unsigned long expected_count,
- std::ostream & os = std::cout,
- const std::string & s1 = "\n", //leading strings
- const std::string & s2 = "",
- const std::string & s3 = "" )
- // os is hint; implementation may ignore, particularly in embedded systems
- : m_os(os), m_s1(s1), m_s2(s2), m_s3(s3) { restart(expected_count); }
-
- void restart( unsigned long expected_count )
- // Effects: display appropriate scale
- // Postconditions: count()==0, expected_count()==expected_count
- {
- _count = _next_tic_count = _tic = 0;
- _expected_count = expected_count;
-
- m_os << m_s1 << "0% 10 20 30 40 50 60 70 80 90 100%\n"
- << m_s2 << "|----|----|----|----|----|----|----|----|----|----|"
- << std::endl // endl implies flush, which ensures display
- << m_s3;
- if ( !_expected_count ) _expected_count = 1; // prevent divide by zero
- } // restart
-
- unsigned long operator+=( unsigned long increment )
- // Effects: Display appropriate progress tic if needed.
- // Postconditions: count()== original count() + increment
- // Returns: count().
- {
- if ( (_count += increment) >= _next_tic_count ) { display_tic(); }
- return _count;
- }
-
- unsigned long operator++() { return operator+=( 1 ); }
- unsigned long count() const { return _count; }
- unsigned long expected_count() const { return _expected_count; }
-
- private:
- std::ostream & m_os; // may not be present in all imps
- const std::string m_s1; // string is more general, safer than
- const std::string m_s2; // const char *, and efficiency or size are
- const std::string m_s3; // not issues
-
- unsigned long _count, _expected_count, _next_tic_count;
- unsigned int _tic;
- void display_tic()
- {
- // use of floating point ensures that both large and small counts
- // work correctly. static_cast<>() is also used several places
- // to suppress spurious compiler warnings.
- unsigned int tics_needed =
- static_cast<unsigned int>(
- (static_cast<double>(_count)/_expected_count)*50.0 );
- do { m_os << '*' << std::flush; } while ( ++_tic < tics_needed );
- _next_tic_count =
- static_cast<unsigned long>((_tic/50.0)*_expected_count);
- if ( _count == _expected_count ) {
- if ( _tic < 51 ) m_os << '*';
- m_os << std::endl;
- }
- } // display_tic
-};
-
-} // namespace boost
-
-#endif // BOOST_PROGRESS_HPP
+++ /dev/null
-// (C) Copyright Jeremy Siek 1999-2001.
-// Distributed under the 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/property_map for documentation.
-
-#ifndef BOOST_PROPERTY_MAP_HPP
-#define BOOST_PROPERTY_MAP_HPP
-
-#include <cassert>
-#include <boost/config.hpp>
-#include <boost/pending/cstddef.hpp>
-#include <boost/detail/iterator.hpp>
-#include <boost/concept_check.hpp>
-#include <boost/concept_archetype.hpp>
-
-namespace boost {
-
- //=========================================================================
- // property_traits class
-
- template <typename PA>
- struct property_traits {
- typedef typename PA::key_type key_type;
- typedef typename PA::value_type value_type;
- typedef typename PA::reference reference;
- typedef typename PA::category category;
- };
-
- //=========================================================================
- // property_traits category tags
-
- namespace detail {
- enum ePropertyMapID { READABLE_PA, WRITABLE_PA,
- READ_WRITE_PA, LVALUE_PA, OP_BRACKET_PA,
- RAND_ACCESS_ITER_PA, LAST_PA };
- }
- struct readable_property_map_tag { enum { id = detail::READABLE_PA }; };
- struct writable_property_map_tag { enum { id = detail::WRITABLE_PA }; };
- struct read_write_property_map_tag :
- public readable_property_map_tag,
- public writable_property_map_tag
- { enum { id = detail::READ_WRITE_PA }; };
-
- struct lvalue_property_map_tag : public read_write_property_map_tag
- { enum { id = detail::LVALUE_PA }; };
-
- //=========================================================================
- // property_traits specialization for pointers
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // The user will just have to create their own specializations for
- // other pointers types if the compiler does not have partial
- // specializations. Sorry!
-#define BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(TYPE) \
- template <> \
- struct property_traits<TYPE*> { \
- typedef TYPE value_type; \
- typedef value_type& reference; \
- typedef std::ptrdiff_t key_type; \
- typedef lvalue_property_map_tag category; \
- }; \
- template <> \
- struct property_traits<const TYPE*> { \
- typedef TYPE value_type; \
- typedef const value_type& reference; \
- typedef std::ptrdiff_t key_type; \
- typedef lvalue_property_map_tag category; \
- }
-
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(long);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned long);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(int);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned int);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(short);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned short);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(char);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned char);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(signed char);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(bool);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(float);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(double);
- BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(long double);
-
- // This may need to be turned off for some older compilers that don't have
- // wchar_t intrinsically.
-# ifndef BOOST_NO_INTRINSIC_WCHAR_T
- template <>
- struct property_traits<wchar_t*> {
- typedef wchar_t value_type;
- typedef value_type& reference;
- typedef std::ptrdiff_t key_type;
- typedef lvalue_property_map_tag category;
- };
- template <>
- struct property_traits<const wchar_t*> {
- typedef wchar_t value_type;
- typedef const value_type& reference;
- typedef std::ptrdiff_t key_type;
- typedef lvalue_property_map_tag category;
- };
-# endif
-
-#else
- template <class T>
- struct property_traits<T*> {
- typedef T value_type;
- typedef value_type& reference;
- typedef std::ptrdiff_t key_type;
- typedef lvalue_property_map_tag category;
- };
- template <class T>
- struct property_traits<const T*> {
- typedef T value_type;
- typedef const value_type& reference;
- typedef std::ptrdiff_t key_type;
- typedef lvalue_property_map_tag category;
- };
-#endif
-
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
- // MSVC doesn't have Koenig lookup, so the user has to
- // do boost::get() anyways, and the using clause
- // doesn't really work for MSVC.
-} // namespace boost
-#endif
-
- // These need to go in global namespace because Koenig
- // lookup does not apply to T*.
-
- // V must be convertible to T
- template <class T, class V>
- inline void put(T* pa, std::ptrdiff_t k, const V& val) { pa[k] = val; }
-
- template <class T>
- inline const T& get(const T* pa, std::ptrdiff_t k) { return pa[k]; }
-
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-namespace boost {
- using ::put;
- using ::get;
-#endif
-
- //=========================================================================
- // concept checks for property maps
-
- template <class PMap, class Key>
- struct ReadablePropertyMapConcept
- {
- typedef typename property_traits<PMap>::key_type key_type;
- typedef typename property_traits<PMap>::reference reference;
- typedef typename property_traits<PMap>::category Category;
- typedef boost::readable_property_map_tag ReadableTag;
- void constraints() {
- function_requires< ConvertibleConcept<Category, ReadableTag> >();
-
- val = get(pmap, k);
- }
- PMap pmap;
- Key k;
- typename property_traits<PMap>::value_type val;
- };
- template <typename KeyArchetype, typename ValueArchetype>
- struct readable_property_map_archetype {
- typedef KeyArchetype key_type;
- typedef ValueArchetype value_type;
- typedef convertible_to_archetype<ValueArchetype> reference;
- typedef readable_property_map_tag category;
- };
- template <typename K, typename V>
- const typename readable_property_map_archetype<K,V>::reference&
- get(const readable_property_map_archetype<K,V>&,
- const typename readable_property_map_archetype<K,V>::key_type&)
- {
- typedef typename readable_property_map_archetype<K,V>::reference R;
- return static_object<R>::get();
- }
-
-
- template <class PMap, class Key>
- struct WritablePropertyMapConcept
- {
- typedef typename property_traits<PMap>::key_type key_type;
- typedef typename property_traits<PMap>::category Category;
- typedef boost::writable_property_map_tag WritableTag;
- void constraints() {
- function_requires< ConvertibleConcept<Category, WritableTag> >();
- put(pmap, k, val);
- }
- PMap pmap;
- Key k;
- typename property_traits<PMap>::value_type val;
- };
- template <typename KeyArchetype, typename ValueArchetype>
- struct writable_property_map_archetype {
- typedef KeyArchetype key_type;
- typedef ValueArchetype value_type;
- typedef void reference;
- typedef writable_property_map_tag category;
- };
- template <typename K, typename V>
- void put(const writable_property_map_archetype<K,V>&,
- const typename writable_property_map_archetype<K,V>::key_type&,
- const typename writable_property_map_archetype<K,V>::value_type&) { }
-
-
- template <class PMap, class Key>
- struct ReadWritePropertyMapConcept
- {
- typedef typename property_traits<PMap>::category Category;
- typedef boost::read_write_property_map_tag ReadWriteTag;
- void constraints() {
- function_requires< ReadablePropertyMapConcept<PMap, Key> >();
- function_requires< WritablePropertyMapConcept<PMap, Key> >();
- function_requires< ConvertibleConcept<Category, ReadWriteTag> >();
- }
- };
- template <typename KeyArchetype, typename ValueArchetype>
- struct read_write_property_map_archetype
- : public readable_property_map_archetype<KeyArchetype, ValueArchetype>,
- public writable_property_map_archetype<KeyArchetype, ValueArchetype>
- {
- typedef KeyArchetype key_type;
- typedef ValueArchetype value_type;
- typedef convertible_to_archetype<ValueArchetype> reference;
- typedef read_write_property_map_tag category;
- };
-
-
- template <class PMap, class Key>
- struct LvaluePropertyMapConcept
- {
- typedef typename property_traits<PMap>::category Category;
- typedef boost::lvalue_property_map_tag LvalueTag;
- typedef typename property_traits<PMap>::reference reference;
-
- void constraints() {
- function_requires< ReadablePropertyMapConcept<PMap, Key> >();
- function_requires< ConvertibleConcept<Category, LvalueTag> >();
-
- typedef typename property_traits<PMap>::value_type value_type;
- typedef typename require_same<
- const value_type&, reference>::type req;
-
- reference ref = pmap[k];
- ignore_unused_variable_warning(ref);
- }
- PMap pmap;
- Key k;
- };
- template <typename KeyArchetype, typename ValueArchetype>
- struct lvalue_property_map_archetype
- : public readable_property_map_archetype<KeyArchetype, ValueArchetype>
- {
- typedef KeyArchetype key_type;
- typedef ValueArchetype value_type;
- typedef const ValueArchetype& reference;
- typedef lvalue_property_map_tag category;
- const value_type& operator[](const key_type&) const {
- return static_object<value_type>::get();
- }
- };
-
- template <class PMap, class Key>
- struct Mutable_LvaluePropertyMapConcept
- {
- typedef typename property_traits<PMap>::category Category;
- typedef boost::lvalue_property_map_tag LvalueTag;
- typedef typename property_traits<PMap>::reference reference;
- void constraints() {
- boost::function_requires< ReadWritePropertyMapConcept<PMap, Key> >();
- boost::function_requires<ConvertibleConcept<Category, LvalueTag> >();
-
- typedef typename property_traits<PMap>::value_type value_type;
- typedef typename require_same<
- value_type&,
- reference>::type req;
-
- reference ref = pmap[k];
- ignore_unused_variable_warning(ref);
- }
- PMap pmap;
- Key k;
- };
- template <typename KeyArchetype, typename ValueArchetype>
- struct mutable_lvalue_property_map_archetype
- : public readable_property_map_archetype<KeyArchetype, ValueArchetype>,
- public writable_property_map_archetype<KeyArchetype, ValueArchetype>
- {
- typedef KeyArchetype key_type;
- typedef ValueArchetype value_type;
- typedef ValueArchetype& reference;
- typedef lvalue_property_map_tag category;
- value_type& operator[](const key_type&) const {
- return static_object<value_type>::get();
- }
- };
-
- struct identity_property_map;
-
- // A helper class for constructing a property map
- // from a class that implements operator[]
-
- template <class Reference, class LvaluePropertyMap>
- struct put_get_helper { };
-
- template <class PropertyMap, class Reference, class K>
- inline Reference
- get(const put_get_helper<Reference, PropertyMap>& pa, const K& k)
- {
- Reference v = static_cast<const PropertyMap&>(pa)[k];
- return v;
- }
- template <class PropertyMap, class Reference, class K, class V>
- inline void
- put(const put_get_helper<Reference, PropertyMap>& pa, K k, const V& v)
- {
- static_cast<const PropertyMap&>(pa)[k] = v;
- }
-
- //=========================================================================
- // Adapter to turn a RandomAccessIterator into a property map
-
- template <class RandomAccessIterator,
- class IndexMap
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , class T, class R
-#else
- , class T = typename std::iterator_traits<RandomAccessIterator>::value_type
- , class R = typename std::iterator_traits<RandomAccessIterator>::reference
-#endif
- >
- class iterator_property_map
- : public boost::put_get_helper< R,
- iterator_property_map<RandomAccessIterator, IndexMap,
- T, R> >
- {
- public:
- typedef typename property_traits<IndexMap>::key_type key_type;
- typedef T value_type;
- typedef R reference;
- typedef boost::lvalue_property_map_tag category;
-
- inline iterator_property_map(
- RandomAccessIterator cc = RandomAccessIterator(),
- const IndexMap& _id = IndexMap() )
- : iter(cc), index(_id) { }
- inline R operator[](key_type v) const { return *(iter + get(index, v)) ; }
- protected:
- RandomAccessIterator iter;
- IndexMap index;
- };
-
-#if !defined BOOST_NO_STD_ITERATOR_TRAITS
- template <class RAIter, class ID>
- inline iterator_property_map<
- RAIter, ID,
- typename std::iterator_traits<RAIter>::value_type,
- typename std::iterator_traits<RAIter>::reference>
- make_iterator_property_map(RAIter iter, ID id) {
- function_requires< RandomAccessIteratorConcept<RAIter> >();
- typedef iterator_property_map<
- RAIter, ID,
- typename std::iterator_traits<RAIter>::value_type,
- typename std::iterator_traits<RAIter>::reference> PA;
- return PA(iter, id);
- }
-#endif
- template <class RAIter, class Value, class ID>
- inline iterator_property_map<RAIter, ID, Value, Value&>
- make_iterator_property_map(RAIter iter, ID id, Value) {
- function_requires< RandomAccessIteratorConcept<RAIter> >();
- typedef iterator_property_map<RAIter, ID, Value, Value&> PMap;
- return PMap(iter, id);
- }
-
- template <class RandomAccessIterator,
- class IndexMap
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- , class T, class R
-#else
- , class T = typename std::iterator_traits<RandomAccessIterator>::value_type
- , class R = typename std::iterator_traits<RandomAccessIterator>::reference
-#endif
- >
- class safe_iterator_property_map
- : public boost::put_get_helper< R,
- safe_iterator_property_map<RandomAccessIterator, IndexMap,
- T, R> >
- {
- public:
- typedef typename property_traits<IndexMap>::key_type key_type;
- typedef T value_type;
- typedef R reference;
- typedef boost::lvalue_property_map_tag category;
-
- inline safe_iterator_property_map(
- RandomAccessIterator first,
- std::size_t n_ = 0,
- const IndexMap& _id = IndexMap() )
- : iter(first), n(n_), index(_id) { }
- inline safe_iterator_property_map() { }
- inline R operator[](key_type v) const {
- assert(get(index, v) < n);
- return *(iter + get(index, v)) ;
- }
- typename property_traits<IndexMap>::value_type size() const { return n; }
- protected:
- RandomAccessIterator iter;
- typename property_traits<IndexMap>::value_type n;
- IndexMap index;
- };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <class RAIter, class ID>
- inline safe_iterator_property_map<
- RAIter, ID,
- typename boost::detail::iterator_traits<RAIter>::value_type,
- typename boost::detail::iterator_traits<RAIter>::reference>
- make_safe_iterator_property_map(RAIter iter, std::size_t n, ID id) {
- function_requires< RandomAccessIteratorConcept<RAIter> >();
- typedef safe_iterator_property_map<
- RAIter, ID,
- typename boost::detail::iterator_traits<RAIter>::value_type,
- typename boost::detail::iterator_traits<RAIter>::reference> PA;
- return PA(iter, n, id);
- }
-#endif
- template <class RAIter, class Value, class ID>
- inline safe_iterator_property_map<RAIter, ID, Value, Value&>
- make_safe_iterator_property_map(RAIter iter, std::size_t n, ID id, Value) {
- function_requires< RandomAccessIteratorConcept<RAIter> >();
- typedef safe_iterator_property_map<RAIter, ID, Value, Value&> PMap;
- return PMap(iter, n, id);
- }
-
- //=========================================================================
- // An adaptor to turn a Unique Pair Associative Container like std::map or
- // std::hash_map into an Lvalue Property Map.
-
- template <typename UniquePairAssociativeContainer>
- class associative_property_map
- : public boost::put_get_helper<
- typename UniquePairAssociativeContainer::value_type::second_type&,
- associative_property_map<UniquePairAssociativeContainer> >
- {
- typedef UniquePairAssociativeContainer C;
- public:
- typedef typename C::key_type key_type;
- typedef typename C::value_type::second_type value_type;
- typedef value_type& reference;
- typedef lvalue_property_map_tag category;
- associative_property_map() : m_c(0) { }
- associative_property_map(C& c) : m_c(&c) { }
- reference operator[](const key_type& k) const {
- return (*m_c)[k];
- }
- private:
- C* m_c;
- };
-
- template <class UniquePairAssociativeContainer>
- associative_property_map<UniquePairAssociativeContainer>
- make_assoc_property_map(UniquePairAssociativeContainer& c)
- {
- return associative_property_map<UniquePairAssociativeContainer>(c);
- }
-
- template <typename UniquePairAssociativeContainer>
- class const_associative_property_map
- : public boost::put_get_helper<
- const typename UniquePairAssociativeContainer::value_type::second_type&,
- const_associative_property_map<UniquePairAssociativeContainer> >
- {
- typedef UniquePairAssociativeContainer C;
- public:
- typedef typename C::key_type key_type;
- typedef typename C::value_type::second_type value_type;
- typedef const value_type& reference;
- typedef lvalue_property_map_tag category;
- const_associative_property_map() : m_c(0) { }
- const_associative_property_map(const C& c) : m_c(&c) { }
- reference operator[](const key_type& k) const {
- return m_c->find(k)->second;
- }
- private:
- C const* m_c;
- };
-
- template <class UniquePairAssociativeContainer>
- const_associative_property_map<UniquePairAssociativeContainer>
- make_assoc_property_map(const UniquePairAssociativeContainer& c)
- {
- return const_associative_property_map<UniquePairAssociativeContainer>(c);
- }
-
- //=========================================================================
- // A property map that applies the identity function to integers
- struct identity_property_map
- : public boost::put_get_helper<std::size_t,
- identity_property_map>
- {
- typedef std::size_t key_type;
- typedef std::size_t value_type;
- typedef std::size_t reference;
- typedef boost::readable_property_map_tag category;
-
- inline value_type operator[](const key_type& v) const { return v; }
- };
-
- //=========================================================================
- // A property map that does not do anything, for
- // when you have to supply a property map, but don't need it.
- namespace detail {
- struct dummy_pmap_reference {
- template <class T>
- dummy_pmap_reference& operator=(const T&) { return *this; }
- operator int() { return 0; }
- };
- }
- class dummy_property_map
- : public boost::put_get_helper<detail::dummy_pmap_reference,
- dummy_property_map >
- {
- public:
- typedef void key_type;
- typedef int value_type;
- typedef detail::dummy_pmap_reference reference;
- typedef boost::read_write_property_map_tag category;
- inline dummy_property_map() : c(0) { }
- inline dummy_property_map(value_type cc) : c(cc) { }
- inline dummy_property_map(const dummy_property_map& x)
- : c(x.c) { }
- template <class Vertex>
- inline reference operator[](Vertex) const { return reference(); }
- protected:
- value_type c;
- };
-
-
-} // namespace boost
-
-
-#endif /* BOOST_PROPERTY_MAP_HPP */
-
+++ /dev/null
-// (C) Copyright Jeremy Siek, 2001.
-// Distributed under the 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/property_map for documentation.
-
-#ifndef BOOST_PROPERTY_MAP_ITERATOR_HPP
-#define BOOST_PROPERTY_MAP_ITERATOR_HPP
-
-#include <boost/property_map.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost {
-
- //======================================================================
- // property iterator, generalized from ideas by François Faure
-
- namespace detail {
-
- template <class Iterator, class LvaluePropertyMap>
- class lvalue_pmap_iter
- : public iterator_adaptor< lvalue_pmap_iter< Iterator, LvaluePropertyMap >,
- Iterator,
- typename property_traits<LvaluePropertyMap>::value_type,
- use_default,
- typename property_traits<LvaluePropertyMap>::reference>
- {
- friend class boost::iterator_core_access;
-
- typedef iterator_adaptor< lvalue_pmap_iter< Iterator, LvaluePropertyMap >,
- Iterator,
- typename property_traits<LvaluePropertyMap>::value_type,
- use_default,
- typename property_traits<LvaluePropertyMap>::reference> super_t;
-
- public:
- lvalue_pmap_iter() { }
- lvalue_pmap_iter(Iterator const& it,
- LvaluePropertyMap m)
- : super_t(it),
- m_map(m) {}
-
- private:
- typename super_t::reference
- dereference() const
- {
- return m_map[*(this->base_reference())];
- }
-
- LvaluePropertyMap m_map;
- };
-
- template <class Iterator, class ReadablePropertyMap>
- class readable_pmap_iter :
- public iterator_adaptor< readable_pmap_iter< Iterator, ReadablePropertyMap >,
- Iterator,
- typename property_traits<ReadablePropertyMap>::value_type,
- use_default,
- typename property_traits<ReadablePropertyMap>::value_type>
-
-
- {
- friend class iterator_core_access;
-
- typedef iterator_adaptor< readable_pmap_iter< Iterator, ReadablePropertyMap >,
- Iterator,
- typename property_traits<ReadablePropertyMap>::value_type,
- use_default,
- typename property_traits<ReadablePropertyMap>::value_type> super_t;
-
- public:
- readable_pmap_iter() { }
- readable_pmap_iter(Iterator const& it,
- ReadablePropertyMap m)
- : super_t(it),
- m_map(m) {}
-
- private:
- typename super_t::reference
- dereference() const
- {
- return get(m_map, *(this->base_reference()));
- }
-
- ReadablePropertyMap m_map;
- };
-
-
- } // namespace detail
-
- template <class PropertyMap, class Iterator>
- struct property_map_iterator_generator :
- mpl::if_< is_same< typename property_traits<PropertyMap>::category, lvalue_property_map_tag>,
- detail::lvalue_pmap_iter<Iterator, PropertyMap>,
- detail::readable_pmap_iter<Iterator, PropertyMap> >
- {};
-
- template <class PropertyMap, class Iterator>
- typename property_map_iterator_generator<PropertyMap, Iterator>::type
- make_property_map_iterator(PropertyMap pmap, Iterator iter)
- {
- typedef typename property_map_iterator_generator<PropertyMap,
- Iterator>::type Iter;
- return Iter(iter, pmap);
- }
-
-} // namespace boost
-
-#endif // BOOST_PROPERTY_MAP_ITERATOR_HPP
-
+++ /dev/null
-// Copyright David Abrahams 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/libs/python for documentation.
-
-#ifndef PYTHON_DWA2002810_HPP
-# define PYTHON_DWA2002810_HPP
-
-# include <boost/python/args.hpp>
-# include <boost/python/args_fwd.hpp>
-# include <boost/python/back_reference.hpp>
-# include <boost/python/bases.hpp>
-# include <boost/python/borrowed.hpp>
-# include <boost/python/call.hpp>
-# include <boost/python/call_method.hpp>
-# include <boost/python/class.hpp>
-# include <boost/python/copy_const_reference.hpp>
-# include <boost/python/copy_non_const_reference.hpp>
-# include <boost/python/data_members.hpp>
-# include <boost/python/def.hpp>
-# include <boost/python/default_call_policies.hpp>
-# include <boost/python/dict.hpp>
-# include <boost/python/enum.hpp>
-# include <boost/python/errors.hpp>
-# include <boost/python/exception_translator.hpp>
-# include <boost/python/extract.hpp>
-# include <boost/python/handle.hpp>
-# include <boost/python/has_back_reference.hpp>
-# include <boost/python/implicit.hpp>
-# include <boost/python/init.hpp>
-# include <boost/python/instance_holder.hpp>
-# include <boost/python/iterator.hpp>
-# include <boost/python/list.hpp>
-# include <boost/python/long.hpp>
-# include <boost/python/lvalue_from_pytype.hpp>
-# include <boost/python/make_constructor.hpp>
-# include <boost/python/make_function.hpp>
-# include <boost/python/manage_new_object.hpp>
-# include <boost/python/module.hpp>
-# include <boost/python/numeric.hpp>
-# include <boost/python/object.hpp>
-# include <boost/python/object_protocol.hpp>
-# include <boost/python/object_protocol_core.hpp>
-# include <boost/python/opaque_pointer_converter.hpp>
-# include <boost/python/operators.hpp>
-# include <boost/python/other.hpp>
-# include <boost/python/overloads.hpp>
-# include <boost/python/pointee.hpp>
-# include <boost/python/pure_virtual.hpp>
-# include <boost/python/ptr.hpp>
-# include <boost/python/reference_existing_object.hpp>
-# include <boost/python/register_ptr_to_python.hpp>
-# include <boost/python/return_arg.hpp>
-# include <boost/python/return_internal_reference.hpp>
-# include <boost/python/return_opaque_pointer.hpp>
-# include <boost/python/return_value_policy.hpp>
-# include <boost/python/scope.hpp>
-# include <boost/python/self.hpp>
-# include <boost/python/slice_nil.hpp>
-# include <boost/python/str.hpp>
-# include <boost/python/to_python_converter.hpp>
-# include <boost/python/to_python_indirect.hpp>
-# include <boost/python/to_python_value.hpp>
-# include <boost/python/tuple.hpp>
-# include <boost/python/type_id.hpp>
-# include <boost/python/with_custodian_and_ward.hpp>
-
-#endif // PYTHON_DWA2002810_HPP
+++ /dev/null
-/* boost random.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the 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/random for documentation.
- *
- * $Id$
- *
- * Revision history
- * 2000-02-18 portability fixes (thanks to Beman Dawes)
- * 2000-02-21 shuffle_output, inversive_congruential_schrage,
- * generator_iterator, uniform_smallint
- * 2000-02-23 generic modulus arithmetic helper, removed *_schrage classes,
- * implemented Streamable and EqualityComparable concepts for
- * generators, added Bernoulli distribution and Box-Muller
- * transform
- * 2000-03-01 cauchy, lognormal, triangle distributions; fixed
- * uniform_smallint; renamed gaussian to normal distribution
- * 2000-03-05 implemented iterator syntax for distribution functions
- * 2000-04-21 removed some optimizations for better BCC/MSVC compatibility
- * 2000-05-10 adapted to BCC and MSVC
- * 2000-06-13 incorporated review results
- * 2000-07-06 moved basic templates from namespace detail to random
- * 2000-09-23 warning removals and int64 fixes (Ed Brey)
- * 2000-09-24 added lagged_fibonacci generator (Matthias Troyer)
- * 2001-02-18 moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_HPP
-#define BOOST_RANDOM_HPP
-
-// generators
-#include <boost/random/linear_congruential.hpp>
-#include <boost/random/additive_combine.hpp>
-#include <boost/random/inversive_congruential.hpp>
-#include <boost/random/shuffle_output.hpp>
-#include <boost/random/mersenne_twister.hpp>
-#include <boost/random/lagged_fibonacci.hpp>
-#include <boost/random/ranlux.hpp>
-#include <boost/random/linear_feedback_shift.hpp>
-#include <boost/random/xor_combine.hpp>
-
-namespace boost {
- typedef random::xor_combine<random::xor_combine<random::linear_feedback_shift<uint32_t, 32, 31, 13, 12, 0>, 0,
- random::linear_feedback_shift<uint32_t, 32, 29, 2, 4, 0>, 0, 0>, 0,
- random::linear_feedback_shift<uint32_t, 32, 28, 3, 17, 0>, 0, 0> taus88;
-} // namespace boost
-
-// misc
-#include <boost/random/random_number_generator.hpp>
-
-// distributions
-#include <boost/random/uniform_smallint.hpp>
-#include <boost/random/uniform_int.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/uniform_real.hpp>
-#include <boost/random/triangle_distribution.hpp>
-#include <boost/random/bernoulli_distribution.hpp>
-#include <boost/random/cauchy_distribution.hpp>
-#include <boost/random/exponential_distribution.hpp>
-#include <boost/random/geometric_distribution.hpp>
-#include <boost/random/normal_distribution.hpp>
-#include <boost/random/lognormal_distribution.hpp>
-#include <boost/random/poisson_distribution.hpp>
-#include <boost/random/gamma_distribution.hpp>
-#include <boost/random/binomial_distribution.hpp>
-#include <boost/random/uniform_on_sphere.hpp>
-
-#endif // BOOST_RANDOM_HPP
+++ /dev/null
-// Boost.Range library
-//
-// Copyright Thorsten Ottosen 2003-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/range/
-//
-
-#ifndef BOOST_RANGE_HPP_27_07_04
-#define BOOST_RANGE_HPP_27_07_04
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#if _MSC_VER == 1300 // experiment
-
-#include <boost/range/detail/collection_traits.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/sub_range.hpp>
-
-#else
-
-#include <boost/range/functions.hpp>
-#include <boost/range/metafunctions.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/sub_range.hpp>
-
-#endif // _MSC_VER == 1300 // experiment
-
-#endif
+++ /dev/null
-// Boost rational.hpp header file ------------------------------------------//
-
-// (C) Copyright Paul Moore 1999. Permission to copy, use, modify, sell and
-// distribute this software is granted provided this copyright notice appears
-// in all copies. This software is provided "as is" without express or
-// implied warranty, and with no claim as to its suitability for any purpose.
-
-// See http://www.boost.org/libs/rational for documentation.
-
-// Credits:
-// Thanks to the boost mailing list in general for useful comments.
-// Particular contributions included:
-// Andrew D Jewell, for reminding me to take care to avoid overflow
-// Ed Brey, for many comments, including picking up on some dreadful typos
-// Stephen Silver contributed the test suite and comments on user-defined
-// IntType
-// Nickolay Mladenov, for the implementation of operator+=
-
-// Revision History
-// 28 Sep 02 Use _left versions of operators from operators.hpp
-// 05 Jul 01 Recode gcd(), avoiding std::swap (Helmut Zeisel)
-// 03 Mar 01 Workarounds for Intel C++ 5.0 (David Abrahams)
-// 05 Feb 01 Update operator>> to tighten up input syntax
-// 05 Feb 01 Final tidy up of gcd code prior to the new release
-// 27 Jan 01 Recode abs() without relying on abs(IntType)
-// 21 Jan 01 Include Nickolay Mladenov's operator+= algorithm,
-// tidy up a number of areas, use newer features of operators.hpp
-// (reduces space overhead to zero), add operator!,
-// introduce explicit mixed-mode arithmetic operations
-// 12 Jan 01 Include fixes to handle a user-defined IntType better
-// 19 Nov 00 Throw on divide by zero in operator /= (John (EBo) David)
-// 23 Jun 00 Incorporate changes from Mark Rodgers for Borland C++
-// 22 Jun 00 Change _MSC_VER to BOOST_MSVC so other compilers are not
-// affected (Beman Dawes)
-// 6 Mar 00 Fix operator-= normalization, #include <string> (Jens Maurer)
-// 14 Dec 99 Modifications based on comments from the boost list
-// 09 Dec 99 Initial Version (Paul Moore)
-
-#ifndef BOOST_RATIONAL_HPP
-#define BOOST_RATIONAL_HPP
-
-#include <iostream> // for std::istream and std::ostream
-#include <iomanip> // for std::noskipws
-#include <stdexcept> // for std::domain_error
-#include <string> // for std::string implicit constructor
-#include <boost/operators.hpp> // for boost::addable etc
-#include <cstdlib> // for std::abs
-#include <boost/call_traits.hpp> // for boost::call_traits
-#include <boost/config.hpp> // for BOOST_NO_STDC_NAMESPACE, BOOST_MSVC
-
-namespace boost {
-
-// Note: We use n and m as temporaries in this function, so there is no value
-// in using const IntType& as we would only need to make a copy anyway...
-template <typename IntType>
-IntType gcd(IntType n, IntType m)
-{
- // Avoid repeated construction
- IntType zero(0);
-
- // This is abs() - given the existence of broken compilers with Koenig
- // lookup issues and other problems, I code this explicitly. (Remember,
- // IntType may be a user-defined type).
- if (n < zero)
- n = -n;
- if (m < zero)
- m = -m;
-
- // As n and m are now positive, we can be sure that %= returns a
- // positive value (the standard guarantees this for built-in types,
- // and we require it of user-defined types).
- for(;;) {
- if(m == zero)
- return n;
- n %= m;
- if(n == zero)
- return m;
- m %= n;
- }
-}
-
-template <typename IntType>
-IntType lcm(IntType n, IntType m)
-{
- // Avoid repeated construction
- IntType zero(0);
-
- if (n == zero || m == zero)
- return zero;
-
- n /= gcd(n, m);
- n *= m;
-
- if (n < zero)
- n = -n;
- return n;
-}
-
-class bad_rational : public std::domain_error
-{
-public:
- explicit bad_rational() : std::domain_error("bad rational: zero denominator") {}
-};
-
-template <typename IntType>
-class rational;
-
-template <typename IntType>
-rational<IntType> abs(const rational<IntType>& r);
-
-template <typename IntType>
-class rational :
- less_than_comparable < rational<IntType>,
- equality_comparable < rational<IntType>,
- less_than_comparable2 < rational<IntType>, IntType,
- equality_comparable2 < rational<IntType>, IntType,
- addable < rational<IntType>,
- subtractable < rational<IntType>,
- multipliable < rational<IntType>,
- dividable < rational<IntType>,
- addable2 < rational<IntType>, IntType,
- subtractable2 < rational<IntType>, IntType,
- subtractable2_left < rational<IntType>, IntType,
- multipliable2 < rational<IntType>, IntType,
- dividable2 < rational<IntType>, IntType,
- dividable2_left < rational<IntType>, IntType,
- incrementable < rational<IntType>,
- decrementable < rational<IntType>
- > > > > > > > > > > > > > > > >
-{
- typedef typename boost::call_traits<IntType>::param_type param_type;
-public:
- typedef IntType int_type;
- rational() : num(0), den(1) {}
- rational(param_type n) : num(n), den(1) {}
- rational(param_type n, param_type d) : num(n), den(d) { normalize(); }
-
- // Default copy constructor and assignment are fine
-
- // Add assignment from IntType
- rational& operator=(param_type n) { return assign(n, 1); }
-
- // Assign in place
- rational& assign(param_type n, param_type d);
-
- // Access to representation
- IntType numerator() const { return num; }
- IntType denominator() const { return den; }
-
- // Arithmetic assignment operators
- rational& operator+= (const rational& r);
- rational& operator-= (const rational& r);
- rational& operator*= (const rational& r);
- rational& operator/= (const rational& r);
-
- rational& operator+= (param_type i);
- rational& operator-= (param_type i);
- rational& operator*= (param_type i);
- rational& operator/= (param_type i);
-
- // Increment and decrement
- const rational& operator++();
- const rational& operator--();
-
- // Operator not
- bool operator!() const { return !num; }
-
- // Comparison operators
- bool operator< (const rational& r) const;
- bool operator== (const rational& r) const;
-
- bool operator< (param_type i) const;
- bool operator> (param_type i) const;
- bool operator== (param_type i) const;
-
-private:
- // Implementation - numerator and denominator (normalized).
- // Other possibilities - separate whole-part, or sign, fields?
- IntType num;
- IntType den;
-
- // Representation note: Fractions are kept in normalized form at all
- // times. normalized form is defined as gcd(num,den) == 1 and den > 0.
- // In particular, note that the implementation of abs() below relies
- // on den always being positive.
- void normalize();
-};
-
-// Assign in place
-template <typename IntType>
-inline rational<IntType>& rational<IntType>::assign(param_type n, param_type d)
-{
- num = n;
- den = d;
- normalize();
- return *this;
-}
-
-// Unary plus and minus
-template <typename IntType>
-inline rational<IntType> operator+ (const rational<IntType>& r)
-{
- return r;
-}
-
-template <typename IntType>
-inline rational<IntType> operator- (const rational<IntType>& r)
-{
- return rational<IntType>(-r.numerator(), r.denominator());
-}
-
-// Arithmetic assignment operators
-template <typename IntType>
-rational<IntType>& rational<IntType>::operator+= (const rational<IntType>& r)
-{
- // This calculation avoids overflow, and minimises the number of expensive
- // calculations. Thanks to Nickolay Mladenov for this algorithm.
- //
- // Proof:
- // We have to compute a/b + c/d, where gcd(a,b)=1 and gcd(b,c)=1.
- // Let g = gcd(b,d), and b = b1*g, d=d1*g. Then gcd(b1,d1)=1
- //
- // The result is (a*d1 + c*b1) / (b1*d1*g).
- // Now we have to normalize this ratio.
- // Let's assume h | gcd((a*d1 + c*b1), (b1*d1*g)), and h > 1
- // If h | b1 then gcd(h,d1)=1 and hence h|(a*d1+c*b1) => h|a.
- // But since gcd(a,b1)=1 we have h=1.
- // Similarly h|d1 leads to h=1.
- // So we have that h | gcd((a*d1 + c*b1) , (b1*d1*g)) => h|g
- // Finally we have gcd((a*d1 + c*b1), (b1*d1*g)) = gcd((a*d1 + c*b1), g)
- // Which proves that instead of normalizing the result, it is better to
- // divide num and den by gcd((a*d1 + c*b1), g)
-
- // Protect against self-modification
- IntType r_num = r.num;
- IntType r_den = r.den;
-
- IntType g = gcd(den, r_den);
- den /= g; // = b1 from the calculations above
- num = num * (r_den / g) + r_num * den;
- g = gcd(num, g);
- num /= g;
- den *= r_den/g;
-
- return *this;
-}
-
-template <typename IntType>
-rational<IntType>& rational<IntType>::operator-= (const rational<IntType>& r)
-{
- // Protect against self-modification
- IntType r_num = r.num;
- IntType r_den = r.den;
-
- // This calculation avoids overflow, and minimises the number of expensive
- // calculations. It corresponds exactly to the += case above
- IntType g = gcd(den, r_den);
- den /= g;
- num = num * (r_den / g) - r_num * den;
- g = gcd(num, g);
- num /= g;
- den *= r_den/g;
-
- return *this;
-}
-
-template <typename IntType>
-rational<IntType>& rational<IntType>::operator*= (const rational<IntType>& r)
-{
- // Protect against self-modification
- IntType r_num = r.num;
- IntType r_den = r.den;
-
- // Avoid overflow and preserve normalization
- IntType gcd1 = gcd<IntType>(num, r_den);
- IntType gcd2 = gcd<IntType>(r_num, den);
- num = (num/gcd1) * (r_num/gcd2);
- den = (den/gcd2) * (r_den/gcd1);
- return *this;
-}
-
-template <typename IntType>
-rational<IntType>& rational<IntType>::operator/= (const rational<IntType>& r)
-{
- // Protect against self-modification
- IntType r_num = r.num;
- IntType r_den = r.den;
-
- // Avoid repeated construction
- IntType zero(0);
-
- // Trap division by zero
- if (r_num == zero)
- throw bad_rational();
- if (num == zero)
- return *this;
-
- // Avoid overflow and preserve normalization
- IntType gcd1 = gcd<IntType>(num, r_num);
- IntType gcd2 = gcd<IntType>(r_den, den);
- num = (num/gcd1) * (r_den/gcd2);
- den = (den/gcd2) * (r_num/gcd1);
-
- if (den < zero) {
- num = -num;
- den = -den;
- }
- return *this;
-}
-
-// Mixed-mode operators
-template <typename IntType>
-inline rational<IntType>&
-rational<IntType>::operator+= (param_type i)
-{
- return operator+= (rational<IntType>(i));
-}
-
-template <typename IntType>
-inline rational<IntType>&
-rational<IntType>::operator-= (param_type i)
-{
- return operator-= (rational<IntType>(i));
-}
-
-template <typename IntType>
-inline rational<IntType>&
-rational<IntType>::operator*= (param_type i)
-{
- return operator*= (rational<IntType>(i));
-}
-
-template <typename IntType>
-inline rational<IntType>&
-rational<IntType>::operator/= (param_type i)
-{
- return operator/= (rational<IntType>(i));
-}
-
-// Increment and decrement
-template <typename IntType>
-inline const rational<IntType>& rational<IntType>::operator++()
-{
- // This can never denormalise the fraction
- num += den;
- return *this;
-}
-
-template <typename IntType>
-inline const rational<IntType>& rational<IntType>::operator--()
-{
- // This can never denormalise the fraction
- num -= den;
- return *this;
-}
-
-// Comparison operators
-template <typename IntType>
-bool rational<IntType>::operator< (const rational<IntType>& r) const
-{
- // Avoid repeated construction
- IntType zero(0);
-
- // If the two values have different signs, we don't need to do the
- // expensive calculations below. We take advantage here of the fact
- // that the denominator is always positive.
- if (num < zero && r.num >= zero) // -ve < +ve
- return true;
- if (num >= zero && r.num <= zero) // +ve or zero is not < -ve or zero
- return false;
-
- // Avoid overflow
- IntType gcd1 = gcd<IntType>(num, r.num);
- IntType gcd2 = gcd<IntType>(r.den, den);
- return (num/gcd1) * (r.den/gcd2) < (den/gcd2) * (r.num/gcd1);
-}
-
-template <typename IntType>
-bool rational<IntType>::operator< (param_type i) const
-{
- // Avoid repeated construction
- IntType zero(0);
-
- // If the two values have different signs, we don't need to do the
- // expensive calculations below. We take advantage here of the fact
- // that the denominator is always positive.
- if (num < zero && i >= zero) // -ve < +ve
- return true;
- if (num >= zero && i <= zero) // +ve or zero is not < -ve or zero
- return false;
-
- // Now, use the fact that n/d truncates towards zero as long as n and d
- // are both positive.
- // Divide instead of multiplying to avoid overflow issues. Of course,
- // division may be slower, but accuracy is more important than speed...
- if (num > zero)
- return (num/den) < i;
- else
- return -i < (-num/den);
-}
-
-template <typename IntType>
-bool rational<IntType>::operator> (param_type i) const
-{
- // Trap equality first
- if (num == i && den == IntType(1))
- return false;
-
- // Otherwise, we can use operator<
- return !operator<(i);
-}
-
-template <typename IntType>
-inline bool rational<IntType>::operator== (const rational<IntType>& r) const
-{
- return ((num == r.num) && (den == r.den));
-}
-
-template <typename IntType>
-inline bool rational<IntType>::operator== (param_type i) const
-{
- return ((den == IntType(1)) && (num == i));
-}
-
-// Normalisation
-template <typename IntType>
-void rational<IntType>::normalize()
-{
- // Avoid repeated construction
- IntType zero(0);
-
- if (den == zero)
- throw bad_rational();
-
- // Handle the case of zero separately, to avoid division by zero
- if (num == zero) {
- den = IntType(1);
- return;
- }
-
- IntType g = gcd<IntType>(num, den);
-
- num /= g;
- den /= g;
-
- // Ensure that the denominator is positive
- if (den < zero) {
- num = -num;
- den = -den;
- }
-}
-
-namespace detail {
-
- // A utility class to reset the format flags for an istream at end
- // of scope, even in case of exceptions
- struct resetter {
- resetter(std::istream& is) : is_(is), f_(is.flags()) {}
- ~resetter() { is_.flags(f_); }
- std::istream& is_;
- std::istream::fmtflags f_; // old GNU c++ lib has no ios_base
- };
-
-}
-
-// Input and output
-template <typename IntType>
-std::istream& operator>> (std::istream& is, rational<IntType>& r)
-{
- IntType n = IntType(0), d = IntType(1);
- char c = 0;
- detail::resetter sentry(is);
-
- is >> n;
- c = is.get();
-
- if (c != '/')
- is.clear(std::istream::badbit); // old GNU c++ lib has no ios_base
-
-#if !defined(__GNUC__) || (defined(__GNUC__) && (__GNUC__ >= 3)) || defined __SGI_STL_PORT
- is >> std::noskipws;
-#else
- is.unsetf(ios::skipws); // compiles, but seems to have no effect.
-#endif
- is >> d;
-
- if (is)
- r.assign(n, d);
-
- return is;
-}
-
-// Add manipulators for output format?
-template <typename IntType>
-std::ostream& operator<< (std::ostream& os, const rational<IntType>& r)
-{
- os << r.numerator() << '/' << r.denominator();
- return os;
-}
-
-// Type conversion
-template <typename T, typename IntType>
-inline T rational_cast(const rational<IntType>& src)
-{
- return static_cast<T>(src.numerator())/src.denominator();
-}
-
-// Do not use any abs() defined on IntType - it isn't worth it, given the
-// difficulties involved (Koenig lookup required, there may not *be* an abs()
-// defined, etc etc).
-template <typename IntType>
-inline rational<IntType> abs(const rational<IntType>& r)
-{
- if (r.numerator() >= IntType(0))
- return r;
-
- return rational<IntType>(-r.numerator(), r.denominator());
-}
-
-} // namespace boost
-
-#endif // BOOST_RATIONAL_HPP
-
+++ /dev/null
-#ifndef BOOST_REF_HPP_INCLUDED
-#define BOOST_REF_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/utility/addressof.hpp>
-#include <boost/mpl/bool.hpp>
-
-//
-// ref.hpp - ref/cref, useful helper functions
-//
-// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
-// Copyright (C) 2001, 2002 Peter Dimov
-// Copyright (C) 2002 David Abrahams
-//
-// Distributed under the 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/ref.html for documentation.
-//
-
-namespace boost
-{
-
-template<class T> class reference_wrapper
-{
-public:
- typedef T type;
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-
- explicit reference_wrapper(T& t): t_(&t) {}
-
-#else
-
- explicit reference_wrapper(T& t): t_(boost::addressof(t)) {}
-
-#endif
-
- operator T& () const { return *t_; }
-
- T& get() const { return *t_; }
-
- T* get_pointer() const { return t_; }
-
-private:
-
- T* t_;
-};
-
-# if defined(__BORLANDC__) && (__BORLANDC__ <= 0x570)
-# define BOOST_REF_CONST
-# else
-# define BOOST_REF_CONST const
-# endif
-
-template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
-{
- return reference_wrapper<T>(t);
-}
-
-template<class T> inline reference_wrapper<T const> BOOST_REF_CONST cref(T const & t)
-{
- return reference_wrapper<T const>(t);
-}
-
-# undef BOOST_REF_CONST
-
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<typename T>
-class is_reference_wrapper
- : public mpl::false_
-{
-};
-
-template<typename T>
-class unwrap_reference
-{
- public:
- typedef T type;
-};
-
-# define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(X) \
-template<typename T> \
-class is_reference_wrapper< X > \
- : public mpl::true_ \
-{ \
-}; \
-\
-template<typename T> \
-class unwrap_reference< X > \
-{ \
- public: \
- typedef T type; \
-}; \
-/**/
-
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T>)
-#if !defined(BOOST_NO_CV_SPECIALIZATIONS)
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const)
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> volatile)
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const volatile)
-#endif
-
-# undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF
-
-# else // no partial specialization
-
-} // namespace boost
-
-#include <boost/type.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
- typedef char (&yes_reference_wrapper_t)[1];
- typedef char (&no_reference_wrapper_t)[2];
-
- no_reference_wrapper_t is_reference_wrapper_test(...);
-
- template<typename T>
- yes_reference_wrapper_t is_reference_wrapper_test(type< reference_wrapper<T> >);
-
- template<bool wrapped>
- struct reference_unwrapper
- {
- template <class T>
- struct apply
- {
- typedef T type;
- };
- };
-
- template<>
- struct reference_unwrapper<true>
- {
- template <class T>
- struct apply
- {
- typedef typename T::type type;
- };
- };
-}
-
-template<typename T>
-class is_reference_wrapper
-{
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_reference_wrapper_test(type<T>()))
- == sizeof(detail::yes_reference_wrapper_t)));
-
- typedef ::boost::mpl::bool_<value> type;
-};
-
-template <typename T>
-class unwrap_reference
- : public detail::reference_unwrapper<
- is_reference_wrapper<T>::value
- >::template apply<T>
-{};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#endif // #ifndef BOOST_REF_HPP_INCLUDED
+++ /dev/null
-/*
- *
- * 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/libs/regex for documentation.
- * FILE regex.cpp
- * VERSION see <boost/version.hpp>
- * DESCRIPTION: Declares boost::basic_regex<> and associated
- * functions and classes. This header is the main
- * entry point for the template regex code.
- */
-
-
-/* start with C compatibility API */
-
-#ifndef BOOST_RE_REGEX_HPP
-#define BOOST_RE_REGEX_HPP
-
-#ifndef BOOST_REGEX_CONFIG_HPP
-#include <boost/regex/config.hpp>
-#endif
-
-#include <boost/regex/v4/regex.hpp>
-
-#endif // include
-
-
-
-
+++ /dev/null
-/*
- *
- * 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/libs/regex for documentation.
- * FILE regex_fwd.cpp
- * VERSION see <boost/version.hpp>
- * DESCRIPTION: Forward declares boost::basic_regex<> and
- * associated typedefs.
- */
-
-#ifndef BOOST_REGEX_FWD_HPP
-#define BOOST_REGEX_FWD_HPP
-
-#ifndef BOOST_REGEX_CONFIG_HPP
-#include <boost/regex/config.hpp>
-#endif
-
-#include <boost/regex/v4/regex_fwd.hpp>
-
-#endif
-
-
-
-
+++ /dev/null
-#ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED
-#define BOOST_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 * ptr;
-
- scoped_array(scoped_array const &);
- scoped_array & operator=(scoped_array const &);
-
- typedef scoped_array<T> this_type;
-
-public:
-
- typedef T element_type;
-
- explicit scoped_array(T * p = 0) : ptr(p) // never throws
- {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
- boost::sp_array_constructor_hook(ptr);
-#endif
- }
-
- ~scoped_array() // never throws
- {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
- boost::sp_array_destructor_hook(ptr);
-#endif
- boost::checked_array_delete(ptr);
- }
-
- void reset(T * p = 0) // never throws
- {
- BOOST_ASSERT(p == 0 || p != ptr); // catch self-reset errors
- this_type(p).swap(*this);
- }
-
- T & operator[](std::ptrdiff_t i) const // never throws
- {
- BOOST_ASSERT(ptr != 0);
- BOOST_ASSERT(i >= 0);
- return ptr[i];
- }
-
- T * get() const // never throws
- {
- return ptr;
- }
-
- // implicit conversion to "bool"
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return ptr != 0;
- }
-
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- typedef T * (this_type::*unspecified_bool_type)() const;
-
- operator unspecified_bool_type() const // never throws
- {
- return ptr == 0? 0: &this_type::get;
- }
-
-#else
-
- typedef T * this_type::*unspecified_bool_type;
-
- operator unspecified_bool_type() const // never throws
- {
- return ptr == 0? 0: &this_type::ptr;
- }
-
-#endif
-
- bool operator! () const // never throws
- {
- return ptr == 0;
- }
-
- void swap(scoped_array & b) // never throws
- {
- T * tmp = b.ptr;
- b.ptr = ptr;
- ptr = 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_SCOPED_ARRAY_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_SCOPED_PTR_HPP_INCLUDED
-#define BOOST_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 * ptr;
-
- scoped_ptr(scoped_ptr const &);
- scoped_ptr & operator=(scoped_ptr const &);
-
- typedef scoped_ptr<T> this_type;
-
-public:
-
- typedef T element_type;
-
- explicit scoped_ptr(T * p = 0): ptr(p) // never throws
- {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
- boost::sp_scalar_constructor_hook(ptr);
-#endif
- }
-
-#ifndef BOOST_NO_AUTO_PTR
-
- explicit scoped_ptr(std::auto_ptr<T> p): ptr(p.release()) // never throws
- {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
- boost::sp_scalar_constructor_hook(ptr);
-#endif
- }
-
-#endif
-
- ~scoped_ptr() // never throws
- {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
- boost::sp_scalar_destructor_hook(ptr);
-#endif
- boost::checked_delete(ptr);
- }
-
- void reset(T * p = 0) // never throws
- {
- BOOST_ASSERT(p == 0 || p != ptr); // catch self-reset errors
- this_type(p).swap(*this);
- }
-
- T & operator*() const // never throws
- {
- BOOST_ASSERT(ptr != 0);
- return *ptr;
- }
-
- T * operator->() const // never throws
- {
- BOOST_ASSERT(ptr != 0);
- return ptr;
- }
-
- T * get() const // never throws
- {
- return ptr;
- }
-
- // implicit conversion to "bool"
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return ptr != 0;
- }
-
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- typedef T * (this_type::*unspecified_bool_type)() const;
-
- operator unspecified_bool_type() const // never throws
- {
- return ptr == 0? 0: &this_type::get;
- }
-
-#else
- typedef T * this_type::*unspecified_bool_type;
-
- operator unspecified_bool_type() const // never throws
- {
- return ptr == 0? 0: &this_type::ptr;
- }
-
-#endif
-
- bool operator! () const // never throws
- {
- return ptr == 0;
- }
-
- void swap(scoped_ptr & b) // never throws
- {
- T * tmp = b.ptr;
- b.ptr = ptr;
- ptr = 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_SCOPED_PTR_HPP_INCLUDED
+++ /dev/null
-#ifndef BOOST_SHARED_ARRAY_HPP_INCLUDED
-#define BOOST_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/detail/shared_array_nmt.hpp>
-#else
-
-#include <boost/assert.hpp>
-#include <boost/checked_delete.hpp>
-
-#include <boost/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"
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return px != 0;
- }
-
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- 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
-
- bool operator! () const // never throws
- {
- return px == 0;
- }
-
- 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_SHARED_ARRAY_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Ronald Garcia 2002. Permission to copy, use, modify, sell and
-// distribute this software is granted provided this copyright notice appears
-// in all copies. This software is provided "as is" without express or implied
-// warranty, and with no claim as to its suitability for any purpose.
-
-// See http://www.boost.org/libs/utility/shared_container_iterator.html for documentation.
-
-#ifndef SHARED_CONTAINER_ITERATOR_RG08102002_HPP
-#define SHARED_CONTAINER_ITERATOR_RG08102002_HPP
-
-#include "boost/iterator_adaptors.hpp"
-#include "boost/shared_ptr.hpp"
-#include <utility>
-
-namespace boost {
-
-template <typename Container>
-class shared_container_iterator : public iterator_adaptor<
- shared_container_iterator<Container>,
- typename Container::iterator> {
-
- typedef iterator_adaptor<
- shared_container_iterator<Container>,
- typename Container::iterator> super_t;
-
- typedef typename Container::iterator iterator_t;
- typedef boost::shared_ptr<Container> container_ref_t;
-
- container_ref_t container_ref;
-public:
- shared_container_iterator() { }
-
- shared_container_iterator(iterator_t const& x,container_ref_t const& c) :
- super_t(x), container_ref(c) { }
-
-
-};
-
-template <typename Container>
-shared_container_iterator<Container>
-make_shared_container_iterator(typename Container::iterator iter,
- boost::shared_ptr<Container> const& container) {
- typedef shared_container_iterator<Container> iterator;
- return iterator(iter,container);
-}
-
-
-
-template <typename Container>
-std::pair<
- shared_container_iterator<Container>,
- shared_container_iterator<Container> >
-make_shared_container_range(boost::shared_ptr<Container> const& container) {
- return
- std::make_pair(
- make_shared_container_iterator(container->begin(),container),
- make_shared_container_iterator(container->end(),container));
-}
-
-
-} // namespace boost
-#endif // SHARED_CONTAINER_ITERATOR_RG08102002_HPP
+++ /dev/null
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#define BOOST_SHARED_PTR_HPP_INCLUDED
-
-//
-// shared_ptr.hpp
-//
-// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-// 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/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/detail/shared_ptr_nmt.hpp>
-#else
-
-#include <boost/assert.hpp>
-#include <boost/checked_delete.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/detail/shared_count.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <memory> // for std::auto_ptr
-#include <algorithm> // for std::swap
-#include <functional> // for std::less
-#include <typeinfo> // for std::bad_cast
-#include <iosfwd> // for std::basic_ostream
-
-#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;
-template<class T> class enable_shared_from_this;
-
-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 T, class Y> void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this<T> const * pe, Y const * px )
-{
- if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast<Y*>(px), pn);
-}
-
-inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... )
-{
-}
-
-} // 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 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
- {
- detail::sp_enable_shared_from_this( pn, 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)
- {
- detail::sp_enable_shared_from_this( pn, p, p );
- }
-
-// generated copy constructor, assignment, destructor are fine...
-
-// except that Borland C++ has a bug, and g++ with -Wsynth warns
-#if defined(__BORLANDC__) || defined(__GNUC__)
-
- shared_ptr & operator=(shared_ptr const & r) // never throws
- {
- px = r.px;
- pn = r.pn; // shared_count::op= doesn't throw
- return *this;
- }
-
-#endif
-
- 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(shared_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
- {
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
- {
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)
- {
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, 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 = detail::shared_count();
- }
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, 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 = detail::shared_count(r);
- detail::sp_enable_shared_from_this( pn, tmp, tmp );
- }
-
-#endif
-
-#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
-
- template<class Y>
- shared_ptr & operator=(shared_ptr<Y> const & r) // never throws
- {
- px = r.px;
- pn = r.pn; // shared_count::op= doesn't throw
- 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;
- }
-
-#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);
- }
-
- 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"
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return px != 0;
- }
-
-#elif \
- ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
- ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) )
-
- 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;
- }
-
- 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(std::type_info const & ti) const
- {
- return pn.get_deleter(ti);
- }
-
-// 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
- 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, 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, 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, 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, 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, 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, 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(__GNUC__) && (__GNUC__ < 3)
-
-template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
-{
- os << p.get();
- return os;
-}
-
-#else
-
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1200 && __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
-
-// get_deleter (experimental)
-
-#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(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(typeid(D)));
-}
-
-#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_SHARED_PTR_HPP_INCLUDED
+++ /dev/null
-// Boost.Signals library
-
-// Copyright Douglas Gregor 2001-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/signals
-
-#ifndef BOOST_SIGNAL_HPP
-#define BOOST_SIGNAL_HPP
-
-#define BOOST_SIGNALS_MAX_ARGS 10
-
-#include <boost/config.hpp>
-#include <boost/type_traits/function_traits.hpp>
-#include <boost/signals/signal0.hpp>
-#include <boost/signals/signal1.hpp>
-#include <boost/signals/signal2.hpp>
-#include <boost/signals/signal3.hpp>
-#include <boost/signals/signal4.hpp>
-#include <boost/signals/signal5.hpp>
-#include <boost/signals/signal6.hpp>
-#include <boost/signals/signal7.hpp>
-#include <boost/signals/signal8.hpp>
-#include <boost/signals/signal9.hpp>
-#include <boost/signals/signal10.hpp>
-#include <boost/function.hpp>
-
-#ifdef BOOST_HAS_ABI_HEADERS
-# include BOOST_ABI_PREFIX
-#endif
-
-namespace boost {
-#ifndef BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
- namespace BOOST_SIGNALS_NAMESPACE {
- namespace detail {
- template<int Arity,
- typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl;
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<0, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal0<typename traits::result_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<1, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal1<typename traits::result_type,
- typename traits::arg1_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<2, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal2<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<3, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal3<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<4, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal4<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<5, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal5<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- typename traits::arg5_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<6, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal6<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- typename traits::arg5_type,
- typename traits::arg6_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<7, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal7<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- typename traits::arg5_type,
- typename traits::arg6_type,
- typename traits::arg7_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<8, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal8<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- typename traits::arg5_type,
- typename traits::arg6_type,
- typename traits::arg7_type,
- typename traits::arg8_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<9, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal9<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- typename traits::arg5_type,
- typename traits::arg6_type,
- typename traits::arg7_type,
- typename traits::arg8_type,
- typename traits::arg9_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- class real_get_signal_impl<10, Signature, Combiner, Group, GroupCompare,
- SlotFunction>
- {
- typedef function_traits<Signature> traits;
-
- public:
- typedef signal10<typename traits::result_type,
- typename traits::arg1_type,
- typename traits::arg2_type,
- typename traits::arg3_type,
- typename traits::arg4_type,
- typename traits::arg5_type,
- typename traits::arg6_type,
- typename traits::arg7_type,
- typename traits::arg8_type,
- typename traits::arg9_type,
- typename traits::arg10_type,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction> type;
- };
-
- template<typename Signature,
- typename Combiner,
- typename Group,
- typename GroupCompare,
- typename SlotFunction>
- struct get_signal_impl :
- public real_get_signal_impl<(function_traits<Signature>::arity),
- Signature,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction>
- {
- };
-
- } // end namespace detail
- } // end namespace BOOST_SIGNALS_NAMESPACE
-
- // Very lightweight wrapper around the signalN classes that allows signals to
- // be created where the number of arguments does not need to be part of the
- // class name.
- template<
- typename Signature, // function type R (T1, T2, ..., TN)
- typename Combiner = last_value<typename function_traits<Signature>::result_type>,
- typename Group = int,
- typename GroupCompare = std::less<Group>,
- typename SlotFunction = function<Signature>
- >
- class signal :
- public BOOST_SIGNALS_NAMESPACE::detail::get_signal_impl<Signature,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction>::type
- {
- typedef typename BOOST_SIGNALS_NAMESPACE::detail::get_signal_impl<
- Signature,
- Combiner,
- Group,
- GroupCompare,
- SlotFunction>::type base_type;
-
- public:
- explicit signal(const Combiner& combiner = Combiner(),
- const GroupCompare& group_compare = GroupCompare()) :
- base_type(combiner, group_compare)
- {
- }
- };
-#endif // ndef BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
-
-} // end namespace boost
-
-#ifdef BOOST_HAS_ABI_HEADERS
-# include BOOST_ABI_SUFFIX
-#endif
-
-#endif // BOOST_SIGNAL_HPP
+++ /dev/null
-// Boost.Signals library
-
-// Copyright Douglas Gregor 2003-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/signals
-#include <boost/signal.hpp>
-
+++ /dev/null
-#ifndef BOOST_SMART_CAST_HPP
-#define BOOST_SMART_CAST_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// smart_cast.hpp:
-
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
-// 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 for updates, documentation, and revision history.
-
-// casting of pointers and references.
-
-// In casting between different C++ classes, there are a number of
-// rules that have to be kept in mind in deciding whether to use
-// static_cast or dynamic_cast.
-
-// a) dynamic casting can only be applied when one of the types is polymorphic
-// Otherwise static_cast must be used.
-// b) only dynamic casting can do runtime error checking
-// use of static_cast is generally un checked even when compiled for debug
-// c) static_cast would be considered faster than dynamic_cast.
-
-// If casting is applied to a template parameter, there is no apriori way
-// to know which of the two casting methods will be permitted or convenient.
-
-// smart_cast uses C++ type_traits, and program debug mode to select the
-// most convenient cast to use.
-
-#include <exception>
-#include <typeinfo>
-
-#include <boost/config.hpp>
-#include <boost/static_assert.hpp>
-
-#include <boost/type_traits/is_base_and_derived.hpp>
-#include <boost/type_traits/is_polymorphic.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost {
-namespace smart_cast_impl {
-
- template<class T>
- struct reference {
-
- struct polymorphic {
-
- struct linear {
- template<class U>
- static T cast(U & u){
- return static_cast<T>(u);
- }
- };
-
- struct cross {
- template<class U>
- static T cast(U & u){
- return dynamic_cast<T>(u);
- }
- };
-
- template<class U>
- static T cast(U & u){
- // if we're in debug mode
- #if ! defined(NDEBUG) \
- || defined(__BORLANDC__) && (__BORLANDC__ <= 0x560) \
- || defined(__MWERKS__)
- // do a checked dynamic cast
- return cross::cast(u);
- #else
- // borland 5.51 chokes here so we can't use it
- // note: if remove_reference isn't function for these types
- // cross casting will be selected this will work but will
- // not be the most efficient method. This will conflict with
- // the original smart_cast motivation.
- typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- BOOST_DEDUCED_TYPENAME mpl::and_<
- mpl::not_<is_base_and_derived<
- BOOST_DEDUCED_TYPENAME remove_reference<T>::type,
- U
- > >,
- mpl::not_<is_base_and_derived<
- U,
- BOOST_DEDUCED_TYPENAME remove_reference<T>::type
- > >
- >,
- // borland chokes w/o full qualification here
- mpl::identity<cross>,
- mpl::identity<linear>
- >::type typex;
- // typex works around gcc 2.95 issue
- return typex::cast(u);
- #endif
- }
- };
-
- struct non_polymorphic {
- template<class U>
- static T cast(U & u){
- return static_cast<T>(u);
- }
- };
- template<class U>
- static T cast(U & u){
- #if defined(__BORLANDC__)
- return mpl::eval_if<
- boost::is_polymorphic<U>,
- mpl::identity<polymorphic>,
- mpl::identity<non_polymorphic>
- >::type::cast(u);
- #else
- typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- boost::is_polymorphic<U>,
- mpl::identity<polymorphic>,
- mpl::identity<non_polymorphic>
- >::type typex;
- return typex::cast(u);
- #endif
- }
- };
-
- template<class T>
- struct pointer {
-
- struct polymorphic {
- // unfortunately, this below fails to work for virtual base
- // classes. need has_virtual_base to do this.
- // Subject for further study
- #if 0
- struct linear {
- template<class U>
- static T cast(U * u){
- return static_cast<T>(u);
- }
- };
-
- struct cross {
- template<class U>
- static T cast(U * u){
- T tmp = dynamic_cast<T>(u);
- #ifndef NDEBUG
- if ( tmp == 0 ) throw std::bad_cast();
- #endif
- return tmp;
- }
- };
-
- template<class U>
- static T cast(U * u){
- // if we're in debug mode
- #if ! defined(NDEBUG) || defined(__BORLANDC__) && (__BORLANDC__ <= 0x560)
- // do a checked dynamic cast
- return cross::cast(u);
- #else
- // borland 5.51 chokes here so we can't use it
- // note: if remove_pointer isn't function for these types
- // cross casting will be selected this will work but will
- // not be the most efficient method. This will conflict with
- // the original smart_cast motivation.
- typedef
- BOOST_DEDUCED_TYPENAME mpl::eval_if<
- BOOST_DEDUCED_TYPENAME mpl::and_<
- mpl::not_<is_base_and_derived<
- BOOST_DEDUCED_TYPENAME remove_pointer<T>::type,
- U
- > >,
- mpl::not_<is_base_and_derived<
- U,
- BOOST_DEDUCED_TYPENAME remove_pointer<T>::type
- > >
- >,
- // borland chokes w/o full qualification here
- mpl::identity<cross>,
- mpl::identity<linear>
- >::type typex;
- return typex::cast(u);
- #endif
- }
- #else
- template<class U>
- static T cast(U * u){
- T tmp = dynamic_cast<T>(u);
- #ifndef NDEBUG
- if ( tmp == 0 ) throw std::bad_cast();
- #endif
- return tmp;
- }
- #endif
- };
-
- struct non_polymorphic {
- template<class U>
- static T cast(U * u){
- return static_cast<T>(u);
- }
- };
-
- template<class U>
- static T cast(U * u){
- #if defined(__BORLANDC__)
- return mpl::eval_if<
- boost::is_polymorphic<U>,
- mpl::identity<polymorphic>,
- mpl::identity<non_polymorphic>
- >::type::cast(u);
- #else
- typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- boost::is_polymorphic<U>,
- mpl::identity<polymorphic>,
- mpl::identity<non_polymorphic>
- >::type typex;
- return typex::cast(u);
- #endif
- }
-
- };
-
- template<class TPtr>
- struct void_pointer {
- template<class UPtr>
- static TPtr cast(UPtr uptr){
- return static_cast<TPtr>(uptr);
- }
- };
-
- template<class T>
- struct error {
- // if we get here, its because we are using one argument in the
- // cast on a system which doesn't support partial template
- // specialization
- template<class U>
- static T cast(U u){
- BOOST_STATIC_ASSERT(sizeof(T)==0);
- return * static_cast<T *>(NULL);
- }
- };
-
-} // smart_cast_impl
-
-// this implements:
-// smart_cast<Target *, Source *>(Source * s)
-// smart_cast<Target &, Source &>(s)
-// note that it will fail with
-// smart_cast<Target &>(s)
-template<class T, class U>
-T smart_cast(U u) {
- typedef
- BOOST_DEDUCED_TYPENAME mpl::eval_if<
- BOOST_DEDUCED_TYPENAME mpl::or_<
- boost::is_same<void *, U>,
- boost::is_same<void *, T>,
- boost::is_same<const void *, U>,
- boost::is_same<const void *, T>
- >,
- mpl::identity<smart_cast_impl::void_pointer<T> >,
- // else
- BOOST_DEDUCED_TYPENAME mpl::eval_if<boost::is_pointer<U>,
- mpl::identity<smart_cast_impl::pointer<T> >,
- // else
- BOOST_DEDUCED_TYPENAME mpl::eval_if<boost::is_reference<U>,
- mpl::identity<smart_cast_impl::reference<T> >,
- // else
- mpl::identity<smart_cast_impl::error<T>
- >
- >
- >
- >::type typex;
- return typex::cast(u);
-}
-
-// this implements:
-// smart_cast_reference<Target &>(Source & s)
-template<class T, class U>
-T smart_cast_reference(U & u) {
- return smart_cast_impl::reference<T>::cast(u);
-}
-
-} // namespace boost
-
-#endif // BOOST_SMART_CAST_HPP
+++ /dev/null
-//
-// smart_ptr.hpp
-//
-// For convenience, this header includes the rest of the smart
-// pointer library headers.
-//
-// 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)
-//
-// http://www.boost.org/libs/smart_ptr/smart_ptr.htm
-//
-
-#include <boost/config.hpp>
-
-#include <boost/scoped_ptr.hpp>
-#include <boost/scoped_array.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/shared_array.hpp>
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-# include <boost/weak_ptr.hpp>
-# include <boost/intrusive_ptr.hpp>
-# include <boost/enable_shared_from_this.hpp>
-#endif
+++ /dev/null
-/*=============================================================================
- Copyright (c) 1998-2003 Joel de Guzman
- Copyright (c) 2001-2003 Daniel Nuffer
- Copyright (c) 2001-2003 Hartmut Kaiser
- Copyright (c) 2002-2003 Martin Wille
- Copyright (c) 2002 Juan Carlos Arevalo-Baeza
- Copyright (c) 2002 Raghavendra Satish
- Copyright (c) 2002 Jeff Westfahl
- Copyright (c) 2001 Bruce Florman
- Copyright (c) 2003 Giovanni Bajo
- Copyright (c) 2003 Vaclav Vesely
- Copyright (c) 2003 Jonathan de Halleux
- http://spirit.sourceforge.net/
-
- 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)
-=============================================================================*/
-#if !defined(SPIRIT_HPP)
-#define SPIRIT_HPP
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// If BOOST_SPIRIT_DEBUG is defined, the following header includes the
-// Spirit.Debug layer, otherwise the non-debug Spirit.Core is included.
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/core.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Spirit.Meta
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/meta.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Spirit.ErrorHandling
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/error_handling.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Spirit.Iterators
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/iterator.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Spirit.Symbols
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/symbols.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Spirit.Utilities
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/utility.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Spirit.Attributes
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <boost/spirit/attribute.hpp>
-
-#endif // !defined(SPIRIT_HPP)
+++ /dev/null
-#ifndef BOOST_STATE_SAVER_HPP
-#define BOOST_STATE_SAVER_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// state_saver.hpp:
-
-// (C) Copyright 2003-4 Pavel Vozenilek and Robert Ramey - http://www.rrsd.com.
-// 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 for updates, documentation, and revision history.
-
-// Inspired by Daryle Walker's iostate_saver concept. This saves the original
-// value of a variable when a state_saver is constructed and restores
-// upon destruction. Useful for being sure that state is restored to
-// variables upon exit from scope.
-
-
-#include <boost/config.hpp>
-#ifndef BOOST_NO_EXCEPTIONS
- #include <exception>
-#endif
-
-#include <boost/call_traits.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/type_traits/has_nothrow_copy.hpp>
-#include <boost/detail/no_exceptions_support.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost {
-
-template<class T>
-// T requirements:
-// - POD or object semantic (cannot be reference, function, ...)
-// - copy constructor
-// - operator = (no-throw one preferred)
-class state_saver : private boost::noncopyable
-{
-private:
- const T previous_value;
- T & previous_ref;
-
- struct restore {
- static void invoke(T & previous_ref, const T & previous_value){
- previous_ref = previous_value; // won't throw
- }
- };
-
- struct restore_with_exception {
- static void invoke(T & previous_ref, const T & previous_value){
- BOOST_TRY{
- previous_ref = previous_value;
- }
- BOOST_CATCH(::std::exception &) {
- // we must ignore it - we are in destructor
- }
- BOOST_CATCH_END
- }
- };
-
-public:
- state_saver(
- T & object
- ) :
- previous_value(object),
- previous_ref(object)
- {}
-
- ~state_saver() {
- #ifndef BOOST_NO_EXCEPTIONS
- typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- has_nothrow_copy<T>,
- mpl::identity<restore>,
- mpl::identity<restore_with_exception>
- >::type typex;
- typex::invoke(previous_ref, previous_value);
- #else
- previous_ref = previous_value;
- #endif
- }
-
-}; // state_saver<>
-
-} // boost
-
-#endif //BOOST_STATE_SAVER_HPP
+++ /dev/null
-// (C) Copyright John Maddock 2000.
-// 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/static_assert for documentation.
-
-/*
- Revision history:
- 02 August 2000
- Initial version.
-*/
-
-#ifndef BOOST_STATIC_ASSERT_HPP
-#define BOOST_STATIC_ASSERT_HPP
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifdef __BORLANDC__
-//
-// workaround for buggy integral-constant expression support:
-#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4))
-// gcc 3.3 and 3.4 don't produce good error messages with the default version:
-# define BOOST_SA_GCC_WORKAROUND
-#endif
-
-namespace boost{
-
-// HP aCC cannot deal with missing names for template value parameters
-template <bool x> struct STATIC_ASSERTION_FAILURE;
-
-template <> struct STATIC_ASSERTION_FAILURE<true> { enum { value = 1 }; };
-
-// HP aCC cannot deal with missing names for template value parameters
-template<int x> struct static_assert_test{};
-
-}
-
-//
-// Implicit instantiation requires that all member declarations be
-// instantiated, but that the definitions are *not* instantiated.
-//
-// It's not particularly clear how this applies to enum's or typedefs;
-// both are described as declarations [7.1.3] and [7.2] in the standard,
-// however some compilers use "delayed evaluation" of one or more of
-// these when implicitly instantiating templates. We use typedef declarations
-// by default, but try defining BOOST_USE_ENUM_STATIC_ASSERT if the enum
-// version gets better results from your compiler...
-//
-// Implementation:
-// Both of these versions rely on sizeof(incomplete_type) generating an error
-// message containing the name of the incomplete type. We use
-// "STATIC_ASSERTION_FAILURE" as the type name here to generate
-// an eye catching error message. The result of the sizeof expression is either
-// used as an enum initialiser, or as a template argument depending which version
-// is in use...
-// Note that the argument to the assert is explicitly cast to bool using old-
-// style casts: too many compilers currently have problems with static_cast
-// when used inside integral constant expressions.
-//
-#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS)
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-// __LINE__ macro broken when -ZI is used see Q199057
-// fortunately MSVC ignores duplicate typedef's.
-#define BOOST_STATIC_ASSERT( B ) \
- typedef ::boost::static_assert_test<\
- sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\
- > boost_static_assert_typedef_
-#elif defined(BOOST_MSVC)
-#define BOOST_STATIC_ASSERT( B ) \
- typedef ::boost::static_assert_test<\
- sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\
- BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
-#elif defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND)
-// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error
-// instead of warning in case of failure
-# define BOOST_STATIC_ASSERT( B ) \
- typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
- [ ::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >::value ]
-#elif defined(__sgi)
-// special version for SGI MIPSpro compiler
-#define BOOST_STATIC_ASSERT( B ) \
- BOOST_STATIC_CONSTANT(bool, \
- BOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \
- typedef ::boost::static_assert_test<\
- sizeof(::boost::STATIC_ASSERTION_FAILURE< \
- BOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\
- BOOST_JOIN(boost_static_assert_typedef_, __LINE__)
-#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3003)
-// special version for CodeWarrior <= 8.x
-#define BOOST_STATIC_ASSERT( B ) \
- BOOST_STATIC_CONSTANT(int, \
- BOOST_JOIN(boost_static_assert_test_, __LINE__) = \
- sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) )
-#else
-// generic version
-#define BOOST_STATIC_ASSERT( B ) \
- typedef ::boost::static_assert_test<\
- sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\
- BOOST_JOIN(boost_static_assert_typedef_, __LINE__)
-#endif
-
-#else
-// alternative enum based implementation:
-#define BOOST_STATIC_ASSERT( B ) \
- enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
- = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
-#endif
-
-
-#endif // BOOST_STATIC_ASSERT_HPP
-
-
+++ /dev/null
-#ifndef BOOST_STATIC_WARNING_HPP
-#define BOOST_STATIC_WARNING_HPP
-
-// (C) Copyright Robert Ramey 2003. Jonathan Turkanis 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
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/static_assert for documentation.
-
-/*
- Revision history:
- 15 June 2003 - Initial version.
- 31 March 2004 - improved diagnostic messages and portability
- (Jonathan Turkanis)
- 03 April 2004 - works on VC6 at class and namespace scope
- - ported to DigitalMars
- - static warnings disabled by default; when enabled,
- uses pragmas to enable required compiler warnings
- on MSVC, Intel, Metrowerks and Borland 5.x.
- (Jonathan Turkanis)
- 30 May 2004 - tweaked for msvc 7.1 and gcc 3.3
- - static warnings ENabled by default; when enabled,
- (Robert Ramey)
-*/
-
-#include <boost/config.hpp>
-
-//
-// Implementation
-// Makes use of the following warnings:
-// 1. GCC prior to 3.3: division by zero.
-// 2. BCC 6.0 preview: unreferenced local variable.
-// 3. DigitalMars: returning address of local automatic variable.
-// 4. VC6: class previously seen as struct (as in 'boost/mpl/print.hpp')
-// 5. All others: deletion of pointer to incomplete type.
-//
-// The trick is to find code which produces warnings containing the name of
-// a structure or variable. Details, with same numbering as above:
-// 1. static_warning_impl<B>::value is zero iff B is false, so diving an int
-// by this value generates a warning iff B is false.
-// 2. static_warning_impl<B>::type has a constructor iff B is true, so an
-// unreferenced variable of this type generates a warning iff B is false.
-// 3. static_warning_impl<B>::type overloads operator& to return a dynamically
-// allocated int pointer only is B is true, so returning the address of an
-// automatic variable of this type generates a warning iff B is fasle.
-// 4. static_warning_impl<B>::STATIC_WARNING is decalred as a struct iff B is
-// false.
-// 5. static_warning_impl<B>::type is incomplete iff B is false, so deleting a
-// pointer to this type generates a warning iff B is false.
-//
-
-//------------------Enable selected warnings----------------------------------//
-
-// Enable the warnings relied on by BOOST_STATIC_WARNING, where possible. The
-// only pragma which is absolutely necessary here is for Borland 5.x, since
-// W8073 is disabled by default. If enabling selected warnings is considered
-// unacceptable, this section can be replaced with:
-// #if defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)
-// pragma warn +stu
-// #endif
-
-# if defined(BOOST_MSVC)
-# pragma warning(2:4150) // C4150: deletion of pointer to incomplete type 'type'.
-# elif defined(BOOST_INTEL) && (defined(__WIN32__) || defined(WIN32))
-# pragma warning(2:457) // #457: delete of pointer to incomplete class.
-# elif defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)
-# pragma warn +stu // W8073: Undefined structure 'structure'.
-# elif defined(__MWERKS__)
-# pragma extended_errorcheck on // Enable 'extended error checking'.
-# endif
-
-//------------------Configure-------------------------------------------------//
-
-# if defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)
-# define BOOST_HAS_DESCRIPTIVE_UNREFERENCED_VARIABLE_WARNING
-# elif defined(__GNUC__) && !defined(BOOST_INTEL) // && (__GNUC__ * 100 + __GNUC_MINOR__ <= 302)
-# define BOOST_HAS_DESCRIPTIVE_DIVIDE_BY_ZERO_WARNING
-# elif defined(__DMC__)
-# define BOOST_HAS_DESCRIPTIVE_RETURNING_ADDRESS_OF_TEMPORARY_WARNING
-# elif defined(BOOST_MSVC) // && (BOOST_MSVC < 1300)
-# define BOOST_NO_PREDEFINED_LINE_MACRO
-# pragma warning(disable:4094) // C4094: untagged 'stuct' declared no symbols
-#endif
-
-//------------------Helper templates------------------------------------------//
-
-namespace boost {
-
-struct STATIC_WARNING;
-
-template<bool>
-struct static_warning_impl;
-
-template<>
-struct static_warning_impl<false> {
- enum { value = 0 };
- #if !defined(BOOST_HAS_DESCRIPTIVE_UNREFERENCED_VARIABLE_WARNING) && \
- !defined(BOOST_HAS_DESCRIPTIVE_RETURNING_ADDRESS_OF_TEMPORARY_WARNING)
- typedef boost::STATIC_WARNING type;
- #else
- typedef int type;
- #endif
- #if defined(BOOST_NO_PREDEFINED_LINE_MACRO)
- struct STATIC_WARNING { };
- #endif
-};
-
-template<>
-struct static_warning_impl<true> {
- enum { value = 1 };
- struct type { type() { } int* operator&() { return new int; } };
- #if defined(BOOST_NO_PREDEFINED_LINE_MACRO)
- class STATIC_WARNING { };
- #endif
-};
-
-} // namespace boost
-
-//------------------Definition of BOOST_STATIC_WARNING------------------------//
-
-#if defined(BOOST_HAS_DESCRIPTIVE_UNREFERENCED_VARIABLE_WARNING)
-# define BOOST_STATIC_WARNING_IMPL(B) \
- struct BOOST_JOIN(STATIC_WARNING, __LINE__) { \
- void f() { \
- ::boost::static_warning_impl<(bool)( B )>::type \
- STATIC_WARNING; \
- } \
- } \
- /**/
-#elif defined(BOOST_HAS_DESCRIPTIVE_RETURNING_ADDRESS_OF_TEMPORARY_WARNING)
-# define BOOST_STATIC_WARNING_IMPL(B) \
- struct BOOST_JOIN(STATIC_WARNING, __LINE__) { \
- int* f() { \
- ::boost::static_warning_impl<(bool)( B )>::type \
- STATIC_WARNING; \
- return &STATIC_WARNING; \
- } \
- } \
- /**/
-#elif defined(BOOST_HAS_DESCRIPTIVE_DIVIDE_BY_ZERO_WARNING)
-# define BOOST_STATIC_WARNING_IMPL(B) \
- struct BOOST_JOIN(STATIC_WARNING, __LINE__) { \
- int f() { int STATIC_WARNING = 1; \
- return STATIC_WARNING / \
- boost::static_warning_impl<(bool)( B )>::value; } \
- } \
- /**/
-#elif defined(BOOST_NO_PREDEFINED_LINE_MACRO)
- // VC6; __LINE__ macro broken when -ZI is used see Q199057, so
- // non-conforming workaround is used.
-# define BOOST_STATIC_WARNING_IMPL(B) \
- struct { \
- struct S { \
- typedef boost::static_warning_impl<(bool)( B )> f; \
- friend class f::STATIC_WARNING; \
- }; \
- } \
- /**/
-#else // Deletion of pointer to incomplete type.
-# define BOOST_STATIC_WARNING_IMPL(B) \
- struct BOOST_JOIN(STATIC_WARNING, __LINE__) { \
- ::boost::static_warning_impl<(bool)( B )>::type* p; \
- void f() { delete p; } \
- } \
- /**/
-#endif
-
-#ifndef BOOST_DISABLE_STATIC_WARNINGS
-# define BOOST_STATIC_WARNING(B) BOOST_STATIC_WARNING_IMPL(B)
-#else // #ifdef BOOST_ENABLE_STATIC_WARNINGS //-------------------------------//
-# define BOOST_STATIC_WARNING(B) BOOST_STATIC_WARNING_IMPL(true)
-#endif
-
-#endif // BOOST_STATIC_WARNING_HPP
+++ /dev/null
-#ifndef BOOST_STRONG_TYPEDEF_HPP
-#define BOOST_STRONG_TYPEDEF_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// strong_typedef.hpp:
-
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
-// 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 for updates, documentation, and revision history.
-
-// macro used to implement a strong typedef. strong typedef
-// guarentees that two types are distinguised even though the
-// share the same underlying implementation. typedef does not create
-// a new type. BOOST_STRONG_TYPEDEF(T, D) creates a new type named D
-// that operates as a type T.
-
-#include <boost/operators.hpp>
-
-#define BOOST_STRONG_TYPEDEF(T, D) \
-struct D \
- : boost::totally_ordered1< D \
- , boost::totally_ordered2< D, T \
- > > \
-{ \
- T t; \
- explicit D(const T t_) : t(t_) {}; \
- D(){}; \
- D(const D & t_) : t(t_.t){} \
- D & operator=(const D & rhs) { t = rhs.t; return *this;} \
- D & operator=(const T & rhs) { t = rhs; return *this;} \
- operator const T & () const {return t; } \
- operator T & () { return t; } \
- bool operator==(const D & rhs) const { return t == rhs.t; } \
- bool operator<(const D & rhs) const { return t < rhs.t; } \
-};
-
-#endif // BOOST_STRONG_TYPEDEF_HPP
+++ /dev/null
-// Copyright (C) 2001-2003
-// William E. Kempf
-//
-// Permission to use, copy, modify, distribute and sell this software
-// and its documentation for any purpose is hereby granted without fee,
-// provided that the above copyright notice appear in all copies and
-// that both that copyright notice and this permission notice appear
-// in supporting documentation. William E. Kempf makes no representations
-// about the suitability of this software for any purpose.
-// It is provided "as is" without express or implied warranty.
-
-#if !defined(BOOST_THREAD_WEK01082003_HPP)
-#define BOOST_THREAD_WEK01082003_HPP
-
-#include <boost/thread/thread.hpp>
-#include <boost/thread/condition.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/once.hpp>
-#include <boost/thread/recursive_mutex.hpp>
-#include <boost/thread/tss.hpp>
-#include <boost/thread/xtime.hpp>
-
-#endif
+++ /dev/null
-#ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED
-#define BOOST_THROW_EXCEPTION_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/throw_exception.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)
-//
-// http://www.boost.org/libs/utility/throw_exception.html
-//
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_NO_EXCEPTIONS
-# include <exception>
-#endif
-
-namespace boost
-{
-
-#ifdef BOOST_NO_EXCEPTIONS
-
-void throw_exception(std::exception const & e); // user defined
-
-#else
-
-template<class E> inline void throw_exception(E const & e)
-{
- throw e;
-}
-
-#endif
-
-} // namespace boost
-
-#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED
+++ /dev/null
-// boost timer.hpp header file ---------------------------------------------//
-
-// Copyright Beman Dawes 1994-99. Distributed under the 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/timer for documentation.
-
-// Revision History
-// 01 Apr 01 Modified to use new <boost/limits.hpp> header. (JMaddock)
-// 12 Jan 01 Change to inline implementation to allow use without library
-// builds. See docs for more rationale. (Beman Dawes)
-// 25 Sep 99 elapsed_max() and elapsed_min() added (John Maddock)
-// 16 Jul 99 Second beta
-// 6 Jul 99 Initial boost version
-
-#ifndef BOOST_TIMER_HPP
-#define BOOST_TIMER_HPP
-
-#include <boost/config.hpp>
-#include <ctime>
-#include <boost/limits.hpp>
-
-# ifdef BOOST_NO_STDC_NAMESPACE
- namespace std { using ::clock_t; using ::clock; }
-# endif
-
-
-namespace boost {
-
-// timer -------------------------------------------------------------------//
-
-// A timer object measures elapsed time.
-
-// It is recommended that implementations measure wall clock rather than CPU
-// time since the intended use is performance measurement on systems where
-// total elapsed time is more important than just process or CPU time.
-
-// Warnings: The maximum measurable elapsed time may well be only 596.5+ hours
-// due to implementation limitations. The accuracy of timings depends on the
-// accuracy of timing information provided by the underlying platform, and
-// this varies a great deal from platform to platform.
-
-class timer
-{
- public:
- timer() { _start_time = std::clock(); } // postcondition: elapsed()==0
-// timer( const timer& src ); // post: elapsed()==src.elapsed()
-// ~timer(){}
-// timer& operator=( const timer& src ); // post: elapsed()==src.elapsed()
- void restart() { _start_time = std::clock(); } // post: elapsed()==0
- double elapsed() const // return elapsed time in seconds
- { return double(std::clock() - _start_time) / CLOCKS_PER_SEC; }
-
- double elapsed_max() const // return estimated maximum value for elapsed()
- // Portability warning: elapsed_max() may return too high a value on systems
- // where std::clock_t overflows or resets at surprising values.
- {
- return (double((std::numeric_limits<std::clock_t>::max)())
- - double(_start_time)) / double(CLOCKS_PER_SEC);
- }
-
- double elapsed_min() const // return minimum value for elapsed()
- { return double(1)/double(CLOCKS_PER_SEC); }
-
- private:
- std::clock_t _start_time;
-}; // timer
-
-} // namespace boost
-
-#endif // BOOST_TIMER_HPP
+++ /dev/null
-// Boost token_functions.hpp ------------------------------------------------//
-
-// Copyright John R. Bandela 2001.
-
-// Distributed under the 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/tokenizer for documentation.
-
-// Revision History:
-// 01 Oct 2004 JoaquÃn M López Muñoz
-// Workaround for a problem with string::assign in msvc-stlport
-// 06 Apr 2004 John Bandela
-// Fixed a bug involving using char_delimiter with a true input iterator
-// 28 Nov 2003 Robert Zeh and John Bandela
-// Converted into "fast" functions that avoid using += when
-// the supplied iterator isn't an input_iterator; based on
-// some work done at Archelon and a version that was checked into
-// the boost CVS for a short period of time.
-// 20 Feb 2002 John Maddock
-// Removed using namespace std declarations and added
-// workaround for BOOST_NO_STDC_NAMESPACE (the library
-// can be safely mixed with regex).
-// 06 Feb 2002 Jeremy Siek
-// Added char_separator.
-// 02 Feb 2002 Jeremy Siek
-// Removed tabs and a little cleanup.
-
-
-#ifndef BOOST_TOKEN_FUNCTIONS_JRB120303_HPP_
-#define BOOST_TOKEN_FUNCTIONS_JRB120303_HPP_
-
-#include <vector>
-#include <stdexcept>
-#include <cassert>
-#include <string>
-#include <cctype>
-#include <algorithm> // for find_if
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/mpl/if.hpp>
-
-//
-// the following must not be macros if we are to prefix them
-// with std:: (they shouldn't be macros anyway...)
-//
-#ifdef ispunct
-# undef ispunct
-#endif
-#ifdef isspace
-# undef isspace
-#endif
-//
-// fix namespace problems:
-//
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std{
- using ::ispunct;
- using ::isspace;
-}
-#endif
-
-namespace boost{
-
- //===========================================================================
- // The escaped_list_separator class. Which is a model of TokenizerFunction
- // An escaped list is a super-set of what is commonly known as a comma
- // separated value (csv) list.It is separated into fields by a comma or
- // other character. If the delimiting character is inside quotes, then it is
- // counted as a regular character.To allow for embedded quotes in a field,
- // there can be escape sequences using the \ much like C.
- // The role of the comma, the quotation mark, and the escape
- // character (backslash \), can be assigned to other characters.
-
- struct escaped_list_error : public std::runtime_error{
- escaped_list_error(const std::string& what):std::runtime_error(what) { }
- };
-
-
-// The out of the box GCC 2.95 on cygwin does not have a char_traits class.
-// MSVC does not like the following typename
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
- template <class Char,
- class Traits = typename std::basic_string<Char>::traits_type >
-#else
- template <class Char,
- class Traits = std::basic_string<Char>::traits_type >
-#endif
- class escaped_list_separator {
-
- private:
- typedef std::basic_string<Char,Traits> string_type;
- struct char_eq {
- Char e_;
- char_eq(Char e):e_(e) { }
- bool operator()(Char c) {
- return Traits::eq(e_,c);
- }
- };
- string_type escape_;
- string_type c_;
- string_type quote_;
- bool last_;
-
- bool is_escape(Char e) {
- char_eq f(e);
- return std::find_if(escape_.begin(),escape_.end(),f)!=escape_.end();
- }
- bool is_c(Char e) {
- char_eq f(e);
- return std::find_if(c_.begin(),c_.end(),f)!=c_.end();
- }
- bool is_quote(Char e) {
- char_eq f(e);
- return std::find_if(quote_.begin(),quote_.end(),f)!=quote_.end();
- }
- template <typename iterator, typename Token>
- void do_escape(iterator& next,iterator end,Token& tok) {
- if (++next == end)
- throw escaped_list_error(std::string("cannot end with escape"));
- if (Traits::eq(*next,'n')) {
- tok+='\n';
- return;
- }
- else if (is_quote(*next)) {
- tok+=*next;
- return;
- }
- else if (is_c(*next)) {
- tok+=*next;
- return;
- }
- else if (is_escape(*next)) {
- tok+=*next;
- return;
- }
- else
- throw escaped_list_error(std::string("unknown escape sequence"));
- }
-
- public:
-
- explicit escaped_list_separator(Char e = '\\',
- Char c = ',',Char q = '\"')
- : escape_(1,e), c_(1,c), quote_(1,q), last_(false) { }
-
- escaped_list_separator(string_type e, string_type c, string_type q)
- : escape_(e), c_(c), quote_(q), last_(false) { }
-
- void reset() {last_=false;}
-
- template <typename InputIterator, typename Token>
- bool operator()(InputIterator& next,InputIterator end,Token& tok) {
- bool bInQuote = false;
- tok = Token();
-
- if (next == end) {
- if (last_) {
- last_ = false;
- return true;
- }
- else
- return false;
- }
- last_ = false;
- for (;next != end;++next) {
- if (is_escape(*next)) {
- do_escape(next,end,tok);
- }
- else if (is_c(*next)) {
- if (!bInQuote) {
- // If we are not in quote, then we are done
- ++next;
- // The last character was a c, that means there is
- // 1 more blank field
- last_ = true;
- return true;
- }
- else tok+=*next;
- }
- else if (is_quote(*next)) {
- bInQuote=!bInQuote;
- }
- else {
- tok += *next;
- }
- }
- return true;
- }
- };
-
- //===========================================================================
- // The classes here are used by offset_separator and char_separator to implement
- // faster assigning of tokens using assign instead of +=
-
- namespace tokenizer_detail {
-
- // The assign_or_plus_equal struct contains functions that implement
- // assign, +=, and clearing based on the iterator type. The
- // generic case does nothing for plus_equal and clearing, while
- // passing through the call for assign.
- //
- // When an input iterator is being used, the situation is reversed.
- // The assign method does nothing, plus_equal invokes operator +=,
- // and the clearing method sets the supplied token to the default
- // token constructor's result.
- //
-
- template<class IteratorTag>
- struct assign_or_plus_equal {
- template<class Iterator, class Token>
- static void assign(Iterator b, Iterator e, Token &t) {
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1200) &&\
- BOOST_WORKAROUND(__SGI_STL_PORT, < 0x500) &&\
- defined(_STLP_DEBUG) &&\
- (defined(_STLP_USE_DYNAMIC_LIB) || defined(_DLL))
- // Problem with string::assign for msvc-stlport in debug mode: the
- // linker tries to import the templatized version of this memfun,
- // which is obviously not exported.
- // See http://www.stlport.com/dcforum/DCForumID6/1763.html for details.
-
- t = Token();
- while(b != e) t += *b++;
-#else
- t.assign(b, e);
-#endif
-
- }
-
- template<class Token, class Value>
- static void plus_equal(Token &, const Value &) {
-
- }
-
- // If we are doing an assign, there is no need for the
- // the clear.
- //
- template<class Token>
- static void clear(Token &) {
-
- }
- };
-
- template <>
- struct assign_or_plus_equal<std::input_iterator_tag> {
- template<class Iterator, class Token>
- static void assign(Iterator b, Iterator e, Token &t) {
-
- }
- template<class Token, class Value>
- static void plus_equal(Token &t, const Value &v) {
- t += v;
- }
- template<class Token>
- static void clear(Token &t) {
- t = Token();
- }
- };
-
-
- template<class Iterator>
- struct pointer_iterator_category{
- typedef std::random_access_iterator_tag type;
- };
-
-
- template<class Iterator>
- struct class_iterator_category{
- typedef typename Iterator::iterator_category type;
- };
-
-
-
- // This portably gets the iterator_tag without partial template specialization
- template<class Iterator>
- struct get_iterator_category{
- typedef typename mpl::if_<is_pointer<Iterator>,
- pointer_iterator_category<Iterator>,
- class_iterator_category<Iterator>
- >::type cat;
-
- typedef typename cat::type iterator_category;
- };
-
-
-}
-
-
- //===========================================================================
- // The offset_separator class, which is a model of TokenizerFunction.
- // Offset breaks a string into tokens based on a range of offsets
-
- class offset_separator {
- private:
-
- std::vector<int> offsets_;
- unsigned int current_offset_;
- bool wrap_offsets_;
- bool return_partial_last_;
-
- public:
- template <typename Iter>
- offset_separator(Iter begin, Iter end, bool wrap_offsets = true,
- bool return_partial_last = true)
- : offsets_(begin,end), current_offset_(0),
- wrap_offsets_(wrap_offsets),
- return_partial_last_(return_partial_last) { }
-
- offset_separator()
- : offsets_(1,1), current_offset_(),
- wrap_offsets_(true), return_partial_last_(true) { }
-
- void reset() {
- current_offset_ = 0;
- }
-
- template <typename InputIterator, typename Token>
- bool operator()(InputIterator& next, InputIterator end, Token& tok)
- {
- typedef tokenizer_detail::assign_or_plus_equal<
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
- typename
-#endif
- tokenizer_detail::get_iterator_category<
- InputIterator>::iterator_category> assigner;
-
-
- assert(!offsets_.empty());
-
- assigner::clear(tok);
- InputIterator start(next);
-
- if (next == end)
- return false;
-
- if (current_offset_ == offsets_.size())
- if (wrap_offsets_)
- current_offset_=0;
- else
- return false;
-
- int c = offsets_[current_offset_];
- int i = 0;
- for (; i < c; ++i) {
- if (next == end)break;
- assigner::plus_equal(tok,*next++);
- }
- assigner::assign(start,next,tok);
-
- if (!return_partial_last_)
- if (i < (c-1) )
- return false;
-
- ++current_offset_;
- return true;
- }
- };
-
-
- //===========================================================================
- // The char_separator class breaks a sequence of characters into
- // tokens based on the character delimiters (very much like bad old
- // strtok). A delimiter character can either be kept or dropped. A
- // kept delimiter shows up as an output token, whereas a dropped
- // delimiter does not.
-
- // This class replaces the char_delimiters_separator class. The
- // constructor for the char_delimiters_separator class was too
- // confusing and needed to be deprecated. However, because of the
- // default arguments to the constructor, adding the new constructor
- // would cause ambiguity, so instead I deprecated the whole class.
- // The implementation of the class was also simplified considerably.
-
- enum empty_token_policy { drop_empty_tokens, keep_empty_tokens };
-
- // The out of the box GCC 2.95 on cygwin does not have a char_traits class.
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
- template <typename Char,
- typename Traits = typename std::basic_string<Char>::traits_type >
-#else
- template <typename Char,
- typename Traits = std::basic_string<Char>::traits_type >
-#endif
- class char_separator
- {
- typedef std::basic_string<Char,Traits> string_type;
- public:
- explicit
- char_separator(const Char* dropped_delims,
- const Char* kept_delims = 0,
- empty_token_policy empty_tokens = drop_empty_tokens)
- : m_dropped_delims(dropped_delims),
- m_use_ispunct(false),
- m_use_isspace(false),
- m_empty_tokens(empty_tokens),
- m_output_done(false)
- {
- // Borland workaround
- if (kept_delims)
- m_kept_delims = kept_delims;
- }
-
- // use ispunct() for kept delimiters and isspace for dropped.
- explicit
- char_separator()
- : m_use_ispunct(true),
- m_use_isspace(true),
- m_empty_tokens(drop_empty_tokens) { }
-
- void reset() { }
-
- template <typename InputIterator, typename Token>
- bool operator()(InputIterator& next, InputIterator end, Token& tok)
- {
- typedef tokenizer_detail::assign_or_plus_equal<
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
- typename
-#endif
- tokenizer_detail::get_iterator_category<
- InputIterator>::iterator_category> assigner;
-
- assigner::clear(tok);
-
- // skip past all dropped_delims
- if (m_empty_tokens == drop_empty_tokens)
- for (; next != end && is_dropped(*next); ++next)
- { }
-
- InputIterator start(next);
-
- if (m_empty_tokens == drop_empty_tokens) {
-
- if (next == end)
- return false;
-
-
- // if we are on a kept_delims move past it and stop
- if (is_kept(*next)) {
- assigner::plus_equal(tok,*next);
- ++next;
- } else
- // append all the non delim characters
- for (; next != end && !is_dropped(*next) && !is_kept(*next); ++next)
- assigner::plus_equal(tok,*next);
- }
- else { // m_empty_tokens == keep_empty_tokens
-
- // Handle empty token at the end
- if (next == end)
- if (m_output_done == false) {
- m_output_done = true;
- assigner::assign(start,next,tok);
- return true;
- } else
- return false;
-
- if (is_kept(*next)) {
- if (m_output_done == false)
- m_output_done = true;
- else {
- assigner::plus_equal(tok,*next);
- ++next;
- m_output_done = false;
- }
- }
- else if (m_output_done == false && is_dropped(*next)) {
- m_output_done = true;
- }
- else {
- if (is_dropped(*next))
- start=++next;
- for (; next != end && !is_dropped(*next) && !is_kept(*next); ++next)
- assigner::plus_equal(tok,*next);
- m_output_done = true;
- }
- }
- assigner::assign(start,next,tok);
- return true;
- }
-
- private:
- string_type m_kept_delims;
- string_type m_dropped_delims;
- bool m_use_ispunct;
- bool m_use_isspace;
- empty_token_policy m_empty_tokens;
- bool m_output_done;
-
- bool is_kept(Char E) const
- {
- if (m_kept_delims.length())
- return m_kept_delims.find(E) != string_type::npos;
- else if (m_use_ispunct) {
- return std::ispunct(E) != 0;
- } else
- return false;
- }
- bool is_dropped(Char E) const
- {
- if (m_dropped_delims.length())
- return m_dropped_delims.find(E) != string_type::npos;
- else if (m_use_isspace) {
- return std::isspace(E) != 0;
- } else
- return false;
- }
- };
-
- //===========================================================================
- // The following class is DEPRECATED, use class char_separators instead.
- //
- // The char_delimiters_separator class, which is a model of
- // TokenizerFunction. char_delimiters_separator breaks a string
- // into tokens based on character delimiters. There are 2 types of
- // delimiters. returnable delimiters can be returned as
- // tokens. These are often punctuation. nonreturnable delimiters
- // cannot be returned as tokens. These are often whitespace
-
- // The out of the box GCC 2.95 on cygwin does not have a char_traits class.
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
- template <class Char,
- class Traits = typename std::basic_string<Char>::traits_type >
-#else
- template <class Char,
- class Traits = std::basic_string<Char>::traits_type >
-#endif
- class char_delimiters_separator {
- private:
-
- typedef std::basic_string<Char,Traits> string_type;
- string_type returnable_;
- string_type nonreturnable_;
- bool return_delims_;
- bool no_ispunct_;
- bool no_isspace_;
-
- bool is_ret(Char E)const
- {
- if (returnable_.length())
- return returnable_.find(E) != string_type::npos;
- else{
- if (no_ispunct_) {return false;}
- else{
- int r = std::ispunct(E);
- return r != 0;
- }
- }
- }
- bool is_nonret(Char E)const
- {
- if (nonreturnable_.length())
- return nonreturnable_.find(E) != string_type::npos;
- else{
- if (no_isspace_) {return false;}
- else{
- int r = std::isspace(E);
- return r != 0;
- }
- }
- }
-
- public:
- explicit char_delimiters_separator(bool return_delims = false,
- const Char* returnable = 0,
- const Char* nonreturnable = 0)
- : returnable_(returnable ? returnable : string_type().c_str()),
- nonreturnable_(nonreturnable ? nonreturnable:string_type().c_str()),
- return_delims_(return_delims), no_ispunct_(returnable!=0),
- no_isspace_(nonreturnable!=0) { }
-
- void reset() { }
-
- public:
-
- template <typename InputIterator, typename Token>
- bool operator()(InputIterator& next, InputIterator end,Token& tok) {
- tok = Token();
-
- // skip past all nonreturnable delims
- // skip past the returnable only if we are not returning delims
- for (;next!=end && ( is_nonret(*next) || (is_ret(*next)
- && !return_delims_ ) );++next) { }
-
- if (next == end) {
- return false;
- }
-
- // if we are to return delims and we are one a returnable one
- // move past it and stop
- if (is_ret(*next) && return_delims_) {
- tok+=*next;
- ++next;
- }
- else
- // append all the non delim characters
- for (;next!=end && !is_nonret(*next) && !is_ret(*next);++next)
- tok+=*next;
-
-
- return true;
- }
- };
-
-
-} //namespace boost
-
-
-#endif
-
-
-
-
-
+++ /dev/null
-// Boost token_iterator.hpp -------------------------------------------------//
-
-// Copyright John R. Bandela 2001
-// Distributed under the 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/tokenizer for documentation.
-
-// Revision History:
-// 16 Jul 2003 John Bandela
-// Allowed conversions from convertible base iterators
-// 03 Jul 2003 John Bandela
-// Converted to new iterator adapter
-
-
-
-#ifndef BOOST_TOKENIZER_POLICY_JRB070303_HPP_
-#define BOOST_TOKENIZER_POLICY_JRB070303_HPP_
-
-#include<boost/iterator/iterator_adaptor.hpp>
-#include<boost/iterator/detail/minimum_category.hpp>
-#include<boost/token_functions.hpp>
-#include<utility>
-#include<cassert>
-
-
-namespace boost
-{
- template <class TokenizerFunc, class Iterator, class Type>
- class token_iterator
- : public iterator_facade<
- token_iterator<TokenizerFunc, Iterator, Type>
- , Type
- , typename detail::minimum_category<
- forward_traversal_tag
- , typename iterator_traversal<Iterator>::type
- >::type
- , const Type&
- >
- {
-
- friend class iterator_core_access;
-
- TokenizerFunc f_;
- Iterator begin_;
- Iterator end_;
- bool valid_;
- Type tok_;
-
- void increment(){
- assert(valid_);
- valid_ = f_(begin_,end_,tok_);
- }
-
- const Type& dereference() const {
- assert(valid_);
- return tok_;
- }
- template<class Other>
- bool equal(const Other& a) const{
- return (a.valid_ && valid_)
- ?( (a.begin_==begin_) && (a.end_ == end_) )
- :(a.valid_==valid_);
-
- }
-
- void initialize(){
- if(valid_) return;
- f_.reset();
- valid_ = (begin_ != end_)?
- f_(begin_,end_,tok_):false;
- }
- public:
- token_iterator():begin_(),end_(),valid_(false),tok_() { }
-
- token_iterator(TokenizerFunc f, Iterator begin, Iterator e = Iterator())
- : f_(f),begin_(begin),end_(e),valid_(false),tok_(){ initialize(); }
-
- token_iterator(Iterator begin, Iterator e = Iterator())
- : f_(),begin_(begin),end_(e),valid_(false),tok_() {initialize();}
-
- template<class OtherIter>
- token_iterator(
- token_iterator<TokenizerFunc, OtherIter,Type> const& t
- , typename enable_if_convertible<OtherIter, Iterator>::type* = 0)
- : f_(t.tokenizer_function()),begin_(t.base())
- ,end_(t.end()),valid_(t.at_end()),tok_(t.current_token()) {}
-
- Iterator base()const{return begin_;}
-
- Iterator end()const{return end_;};
-
- TokenizerFunc tokenizer_function()const{return f_;}
-
- Type current_token()const{return tok_;}
-
- bool at_end()const{return valid_;}
-
-
-
-
- };
- template <
- class TokenizerFunc = char_delimiters_separator<char>,
- class Iterator = std::string::const_iterator,
- class Type = std::string
- >
- class token_iterator_generator {
-
- private:
- public:
- typedef token_iterator<TokenizerFunc,Iterator,Type> type;
- };
-
-
- // Type has to be first because it needs to be explicitly specified
- // because there is no way the function can deduce it.
- template<class Type, class Iterator, class TokenizerFunc>
- typename token_iterator_generator<TokenizerFunc,Iterator,Type>::type
- make_token_iterator(Iterator begin, Iterator end,const TokenizerFunc& fun){
- typedef typename
- token_iterator_generator<TokenizerFunc,Iterator,Type>::type ret_type;
- return ret_type(fun,begin,end);
- }
-
-} // namespace boost
-
-#endif
+++ /dev/null
-// Boost tokenizer.hpp -----------------------------------------------------//
-
-// © Copyright Jeremy Siek and John R. Bandela 2001.
-
-// Distributed under the 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/tokenizer for documenation
-
-// Revision History:
-// 03 Jul 2003 John Bandela
-// Converted to new iterator adapter
-// 02 Feb 2002 Jeremy Siek
-// Removed tabs and a little cleanup.
-
-#ifndef BOOST_TOKENIZER_JRB070303_HPP_
-#define BOOST_TOKENIZER_JRB070303_HPP_
-
-#include <boost/token_iterator.hpp>
-#include <cassert>
-namespace boost {
-
-
- //===========================================================================
- // A container-view of a tokenized "sequence"
- template <
- typename TokenizerFunc = char_delimiters_separator<char>,
- typename Iterator = std::string::const_iterator,
- typename Type = std::string
- >
- class tokenizer {
- private:
- typedef token_iterator_generator<TokenizerFunc,Iterator,Type> TGen;
-
- // It seems that MSVC does not like the unqualified use of iterator,
- // Thus we use iter internally when it is used unqualified and
- // the users of this class will always qualify iterator.
- typedef typename TGen::type iter;
-
- public:
-
- typedef iter iterator;
- typedef iter const_iterator;
- typedef Type value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef value_type* pointer;
- typedef const pointer const_pointer;
- typedef void size_type;
- typedef void difference_type;
-
- tokenizer(Iterator first, Iterator last,
- const TokenizerFunc& f = TokenizerFunc())
- : first_(first), last_(last), f_(f) { }
-
- template <typename Container>
- tokenizer(const Container& c)
- : first_(c.begin()), last_(c.end()), f_() { }
-
- template <typename Container>
- tokenizer(const Container& c,const TokenizerFunc& f)
- : first_(c.begin()), last_(c.end()), f_(f) { }
-
- void assign(Iterator first, Iterator last){
- first_ = first;
- last_ = last;
- }
-
- void assign(Iterator first, Iterator last, const TokenizerFunc& f){
- assign(first,last);
- f_ = f;
- }
-
- template <typename Container>
- void assign(const Container& c){
- assign(c.begin(),c.end());
- }
-
-
- template <typename Container>
- void assign(const Container& c, const TokenizerFunc& f){
- assign(c.begin(),c.end(),f);
- }
-
- iter begin() const { return iter(f_,first_,last_); }
- iter end() const { return iter(f_,last_,last_); }
-
- private:
- Iterator first_;
- Iterator last_;
- TokenizerFunc f_;
- };
-
-
-} // namespace boost
-
-#endif
+++ /dev/null
-// tuple_basic.hpp -----------------------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
-//
-// Distributed under the 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
-
-// Outside help:
-// This and that, Gary Powell.
-// Fixed return types for get_head/get_tail
-// ( and other bugs ) per suggestion of Jens Maurer
-// simplified element type accessors + bug fix (Jeremy Siek)
-// Several changes/additions according to suggestions by Douglas Gregor,
-// William Kempf, Vesa Karvonen, John Max Skaller, Ed Brey, Beman Dawes,
-// David Abrahams.
-
-// Revision history:
-// 2002 05 01 Hugo Duncan: Fix for Borland after Jaakko's previous changes
-// 2002 04 18 Jaakko: tuple element types can be void or plain function
-// types, as long as no object is created.
-// Tuple objects can no hold even noncopyable types
-// such as arrays.
-// 2001 10 22 John Maddock
-// Fixes for Borland C++
-// 2001 08 30 David Abrahams
-// Added default constructor for cons<>.
-// -----------------------------------------------------------------
-
-#ifndef BOOST_TUPLE_BASIC_HPP
-#define BOOST_TUPLE_BASIC_HPP
-
-
-#include <utility> // needed for the assignment from pair to tuple
-
-#include "boost/type_traits/cv_traits.hpp"
-#include "boost/type_traits/function_traits.hpp"
-
-#include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND
-
-namespace boost {
-namespace tuples {
-
-// -- null_type --------------------------------------------------------
-struct null_type {};
-
-// a helper function to provide a const null_type type temporary
-namespace detail {
- inline const null_type cnull() { return null_type(); }
-
-
-// -- if construct ------------------------------------------------
-// Proposed by Krzysztof Czarnecki and Ulrich Eisenecker
-
-template <bool If, class Then, class Else> struct IF { typedef Then RET; };
-
-template <class Then, class Else> struct IF<false, Then, Else> {
- typedef Else RET;
-};
-
-} // end detail
-
-// - cons forward declaration -----------------------------------------------
-template <class HT, class TT> struct cons;
-
-
-// - tuple forward declaration -----------------------------------------------
-template <
- class T0 = null_type, class T1 = null_type, class T2 = null_type,
- class T3 = null_type, class T4 = null_type, class T5 = null_type,
- class T6 = null_type, class T7 = null_type, class T8 = null_type,
- class T9 = null_type>
-class tuple;
-
-// tuple_length forward declaration
-template<class T> struct length;
-
-
-
-namespace detail {
-
-// -- generate error template, referencing to non-existing members of this
-// template is used to produce compilation errors intentionally
-template<class T>
-class generate_error;
-
-// - cons getters --------------------------------------------------------
-// called: get_class<N>::get<RETURN_TYPE>(aTuple)
-
-template< int N >
-struct get_class {
- template<class RET, class HT, class TT >
- inline static RET get(const cons<HT, TT>& t)
- {
-#if BOOST_WORKAROUND(__IBMCPP__,==600)
- // vacpp 6.0 is not very consistent regarding the member template keyword
- // Here it generates an error when the template keyword is used.
- return get_class<N-1>::get<RET>(t.tail);
-#else
- return get_class<N-1>::BOOST_NESTED_TEMPLATE get<RET>(t.tail);
-#endif
- }
- template<class RET, class HT, class TT >
- inline static RET get(cons<HT, TT>& t)
- {
-#if BOOST_WORKAROUND(__IBMCPP__,==600)
- return get_class<N-1>::get<RET>(t.tail);
-#else
- return get_class<N-1>::BOOST_NESTED_TEMPLATE get<RET>(t.tail);
-#endif
- }
-};
-
-template<>
-struct get_class<0> {
- template<class RET, class HT, class TT>
- inline static RET get(const cons<HT, TT>& t)
- {
- return t.head;
- }
- template<class RET, class HT, class TT>
- inline static RET get(cons<HT, TT>& t)
- {
- return t.head;
- }
-};
-
-} // end of namespace detail
-
-
-// -cons type accessors ----------------------------------------
-// typename tuples::element<N,T>::type gets the type of the
-// Nth element ot T, first element is at index 0
-// -------------------------------------------------------
-
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-
-template<int N, class T>
-struct element
-{
-private:
- typedef typename T::tail_type Next;
-public:
- typedef typename element<N-1, Next>::type type;
-};
-template<class T>
-struct element<0,T>
-{
- typedef typename T::head_type type;
-};
-
-template<int N, class T>
-struct element<N, const T>
-{
-private:
- typedef typename T::tail_type Next;
- typedef typename element<N-1, Next>::type unqualified_type;
-public:
-#if BOOST_WORKAROUND(__BORLANDC__,<0x600)
- typedef const unqualified_type type;
-#else
- typedef typename boost::add_const<unqualified_type>::type type;
-#endif
-
-};
-template<class T>
-struct element<0,const T>
-{
-#if BOOST_WORKAROUND(__BORLANDC__,<0x600)
- typedef const typename T::head_type type;
-#else
- typedef typename boost::add_const<typename T::head_type>::type type;
-#endif
-};
-
-#else // def BOOST_NO_CV_SPECIALIZATIONS
-
-namespace detail {
-
-template<int N, class T, bool IsConst>
-struct element_impl
-{
-private:
- typedef typename T::tail_type Next;
-public:
- typedef typename element_impl<N-1, Next, IsConst>::type type;
-};
-
-template<int N, class T>
-struct element_impl<N, T, true /* IsConst */>
-{
-private:
- typedef typename T::tail_type Next;
-public:
- typedef const typename element_impl<N-1, Next, true>::type type;
-};
-
-template<class T>
-struct element_impl<0, T, false /* IsConst */>
-{
- typedef typename T::head_type type;
-};
-
-template<class T>
-struct element_impl<0, T, true /* IsConst */>
-{
- typedef const typename T::head_type type;
-};
-
-} // end of namespace detail
-
-
-template<int N, class T>
-struct element:
- public detail::element_impl<N, T, ::boost::is_const<T>::value>
-{
-};
-
-#endif
-
-
-// -get function templates -----------------------------------------------
-// Usage: get<N>(aTuple)
-
-// -- some traits classes for get functions
-
-// access traits lifted from detail namespace to be part of the interface,
-// (Joel de Guzman's suggestion). Rationale: get functions are part of the
-// interface, so should the way to express their return types be.
-
-template <class T> struct access_traits {
- typedef const T& const_type;
- typedef T& non_const_type;
-
- typedef const typename boost::remove_cv<T>::type& parameter_type;
-
-// used as the tuple constructors parameter types
-// Rationale: non-reference tuple element types can be cv-qualified.
-// It should be possible to initialize such types with temporaries,
-// and when binding temporaries to references, the reference must
-// be non-volatile and const. 8.5.3. (5)
-};
-
-template <class T> struct access_traits<T&> {
-
- typedef T& const_type;
- typedef T& non_const_type;
-
- typedef T& parameter_type;
-};
-
-// get function for non-const cons-lists, returns a reference to the element
-
-template<int N, class HT, class TT>
-inline typename access_traits<
- typename element<N, cons<HT, TT> >::type
- >::non_const_type
-get(cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-#if BOOST_WORKAROUND(__IBMCPP__,==600 )
- return detail::get_class<N>::
-#else
- return detail::get_class<N>::BOOST_NESTED_TEMPLATE
-#endif
- get<
- typename access_traits<
- typename element<N, cons<HT, TT> >::type
- >::non_const_type,
- HT,TT
- >(c);
-}
-
-// get function for const cons-lists, returns a const reference to
-// the element. If the element is a reference, returns the reference
-// as such (that is, can return a non-const reference)
-template<int N, class HT, class TT>
-inline typename access_traits<
- typename element<N, cons<HT, TT> >::type
- >::const_type
-get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-#if BOOST_WORKAROUND(__IBMCPP__,==600)
- return detail::get_class<N>::
-#else
- return detail::get_class<N>::BOOST_NESTED_TEMPLATE
-#endif
- get<
- typename access_traits<
- typename element<N, cons<HT, TT> >::type
- >::const_type,
- HT,TT
- >(c);
-}
-
-// -- the cons template --------------------------------------------------
-namespace detail {
-
-// These helper templates wrap void types and plain function types.
-// The reationale is to allow one to write tuple types with those types
-// as elements, even though it is not possible to instantiate such object.
-// E.g: typedef tuple<void> some_type; // ok
-// but: some_type x; // fails
-
-template <class T> class non_storeable_type {
- non_storeable_type();
-};
-
-template <class T> struct wrap_non_storeable_type {
- typedef typename IF<
- ::boost::is_function<T>::value, non_storeable_type<T>, T
- >::RET type;
-};
-template <> struct wrap_non_storeable_type<void> {
- typedef non_storeable_type<void> type;
-};
-
-} // detail
-
-template <class HT, class TT>
-struct cons {
-
- typedef HT head_type;
- typedef TT tail_type;
-
- typedef typename
- detail::wrap_non_storeable_type<head_type>::type stored_head_type;
-
- stored_head_type head;
- tail_type tail;
-
- typename access_traits<stored_head_type>::non_const_type
- get_head() { return head; }
-
- typename access_traits<tail_type>::non_const_type
- get_tail() { return tail; }
-
- typename access_traits<stored_head_type>::const_type
- get_head() const { return head; }
-
- typename access_traits<tail_type>::const_type
- get_tail() const { return tail; }
-
- cons() : head(), tail() {}
- // cons() : head(detail::default_arg<HT>::f()), tail() {}
-
- // the argument for head is not strictly needed, but it prevents
- // array type elements. This is good, since array type elements
- // cannot be supported properly in any case (no assignment,
- // copy works only if the tails are exactly the same type, ...)
-
- cons(typename access_traits<stored_head_type>::parameter_type h,
- const tail_type& t)
- : head (h), tail(t) {}
-
- template <class T1, class T2, class T3, class T4, class T5,
- class T6, class T7, class T8, class T9, class T10>
- cons( T1& t1, T2& t2, T3& t3, T4& t4, T5& t5,
- T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 )
- : head (t1),
- tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull())
- {}
-
- template <class T2, class T3, class T4, class T5,
- class T6, class T7, class T8, class T9, class T10>
- cons( const null_type& t1, T2& t2, T3& t3, T4& t4, T5& t5,
- T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 )
- : head (),
- tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull())
- {}
-
-
- template <class HT2, class TT2>
- cons( const cons<HT2, TT2>& u ) : head(u.head), tail(u.tail) {}
-
- template <class HT2, class TT2>
- cons& operator=( const cons<HT2, TT2>& u ) {
- head=u.head; tail=u.tail; return *this;
- }
-
- // must define assignment operator explicitly, implicit version is
- // illformed if HT is a reference (12.8. (12))
- cons& operator=(const cons& u) {
- head = u.head; tail = u.tail; return *this;
- }
-
- template <class T1, class T2>
- cons& operator=( const std::pair<T1, T2>& u ) {
- BOOST_STATIC_ASSERT(length<cons>::value == 2); // check length = 2
- head = u.first; tail.head = u.second; return *this;
- }
-
- // get member functions (non-const and const)
- template <int N>
- typename access_traits<
- typename element<N, cons<HT, TT> >::type
- >::non_const_type
- get() {
- return boost::tuples::get<N>(*this); // delegate to non-member get
- }
-
- template <int N>
- typename access_traits<
- typename element<N, cons<HT, TT> >::type
- >::const_type
- get() const {
- return boost::tuples::get<N>(*this); // delegate to non-member get
- }
-};
-
-template <class HT>
-struct cons<HT, null_type> {
-
- typedef HT head_type;
- typedef null_type tail_type;
- typedef cons<HT, null_type> self_type;
-
- typedef typename
- detail::wrap_non_storeable_type<head_type>::type stored_head_type;
- stored_head_type head;
-
- typename access_traits<stored_head_type>::non_const_type
- get_head() { return head; }
-
- null_type get_tail() { return null_type(); }
-
- typename access_traits<stored_head_type>::const_type
- get_head() const { return head; }
-
- const null_type get_tail() const { return null_type(); }
-
- // cons() : head(detail::default_arg<HT>::f()) {}
- cons() : head() {}
-
- cons(typename access_traits<stored_head_type>::parameter_type h,
- const null_type& = null_type())
- : head (h) {}
-
- template<class T1>
- cons(T1& t1, const null_type&, const null_type&, const null_type&,
- const null_type&, const null_type&, const null_type&,
- const null_type&, const null_type&, const null_type&)
- : head (t1) {}
-
- cons(const null_type&,
- const null_type&, const null_type&, const null_type&,
- const null_type&, const null_type&, const null_type&,
- const null_type&, const null_type&, const null_type&)
- : head () {}
-
- template <class HT2>
- cons( const cons<HT2, null_type>& u ) : head(u.head) {}
-
- template <class HT2>
- cons& operator=(const cons<HT2, null_type>& u )
- { head = u.head; return *this; }
-
- // must define assignment operator explicitely, implicit version
- // is illformed if HT is a reference
- cons& operator=(const cons& u) { head = u.head; return *this; }
-
- template <int N>
- typename access_traits<
- typename element<N, self_type>::type
- >::non_const_type
- get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
- return boost::tuples::get<N>(*this);
- }
-
- template <int N>
- typename access_traits<
- typename element<N, self_type>::type
- >::const_type
- get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) const {
- return boost::tuples::get<N>(*this);
- }
-
-};
-
-// templates for finding out the length of the tuple -------------------
-
-template<class T>
-struct length {
- BOOST_STATIC_CONSTANT(int, value = 1 + length<typename T::tail_type>::value);
-};
-
-template<>
-struct length<tuple<> > {
- BOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<null_type> {
- BOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-
-namespace detail {
-
-// Tuple to cons mapper --------------------------------------------------
-template <class T0, class T1, class T2, class T3, class T4,
- class T5, class T6, class T7, class T8, class T9>
-struct map_tuple_to_cons
-{
- typedef cons<T0,
- typename map_tuple_to_cons<T1, T2, T3, T4, T5,
- T6, T7, T8, T9, null_type>::type
- > type;
-};
-
-// The empty tuple is a null_type
-template <>
-struct map_tuple_to_cons<null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type>
-{
- typedef null_type type;
-};
-
-} // end detail
-
-// -------------------------------------------------------------------
-// -- tuple ------------------------------------------------------
-template <class T0, class T1, class T2, class T3, class T4,
- class T5, class T6, class T7, class T8, class T9>
-
-class tuple :
- public detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-{
-public:
- typedef typename
- detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type inherited;
- typedef typename inherited::head_type head_type;
- typedef typename inherited::tail_type tail_type;
-
-
-// access_traits<T>::parameter_type takes non-reference types as const T&
- tuple() {}
-
- tuple(typename access_traits<T0>::parameter_type t0)
- : inherited(t0, detail::cnull(), detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1)
- : inherited(t0, t1, detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2)
- : inherited(t0, t1, t2, detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3)
- : inherited(t0, t1, t2, t3, detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull(),
- detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3,
- typename access_traits<T4>::parameter_type t4)
- : inherited(t0, t1, t2, t3, t4, detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull(), detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3,
- typename access_traits<T4>::parameter_type t4,
- typename access_traits<T5>::parameter_type t5)
- : inherited(t0, t1, t2, t3, t4, t5, detail::cnull(), detail::cnull(),
- detail::cnull(), detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3,
- typename access_traits<T4>::parameter_type t4,
- typename access_traits<T5>::parameter_type t5,
- typename access_traits<T6>::parameter_type t6)
- : inherited(t0, t1, t2, t3, t4, t5, t6, detail::cnull(),
- detail::cnull(), detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3,
- typename access_traits<T4>::parameter_type t4,
- typename access_traits<T5>::parameter_type t5,
- typename access_traits<T6>::parameter_type t6,
- typename access_traits<T7>::parameter_type t7)
- : inherited(t0, t1, t2, t3, t4, t5, t6, t7, detail::cnull(),
- detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3,
- typename access_traits<T4>::parameter_type t4,
- typename access_traits<T5>::parameter_type t5,
- typename access_traits<T6>::parameter_type t6,
- typename access_traits<T7>::parameter_type t7,
- typename access_traits<T8>::parameter_type t8)
- : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, detail::cnull()) {}
-
- tuple(typename access_traits<T0>::parameter_type t0,
- typename access_traits<T1>::parameter_type t1,
- typename access_traits<T2>::parameter_type t2,
- typename access_traits<T3>::parameter_type t3,
- typename access_traits<T4>::parameter_type t4,
- typename access_traits<T5>::parameter_type t5,
- typename access_traits<T6>::parameter_type t6,
- typename access_traits<T7>::parameter_type t7,
- typename access_traits<T8>::parameter_type t8,
- typename access_traits<T9>::parameter_type t9)
- : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {}
-
-
- template<class U1, class U2>
- tuple(const cons<U1, U2>& p) : inherited(p) {}
-
- template <class U1, class U2>
- tuple& operator=(const cons<U1, U2>& k) {
- inherited::operator=(k);
- return *this;
- }
-
- template <class U1, class U2>
- tuple& operator=(const std::pair<U1, U2>& k) {
- BOOST_STATIC_ASSERT(length<tuple>::value == 2);// check_length = 2
- this->head = k.first;
- this->tail.head = k.second;
- return *this;
- }
-
-};
-
-// The empty tuple
-template <>
-class tuple<null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type> :
- public null_type
-{
-public:
- typedef null_type inherited;
-};
-
-
-// Swallows any assignment (by Doug Gregor)
-namespace detail {
-
-struct swallow_assign {
-
- template<typename T>
- swallow_assign const& operator=(const T&) const {
- return *this;
- }
-};
-
-} // namespace detail
-
-// "ignore" allows tuple positions to be ignored when using "tie".
-detail::swallow_assign const ignore = detail::swallow_assign();
-
-// ---------------------------------------------------------------------------
-// The call_traits for make_tuple
-// Honours the reference_wrapper class.
-
-// Must be instantiated with plain or const plain types (not with references)
-
-// from template<class T> foo(const T& t) : make_tuple_traits<const T>::type
-// from template<class T> foo(T& t) : make_tuple_traits<T>::type
-
-// Conversions:
-// T -> T,
-// references -> compile_time_error
-// reference_wrapper<T> -> T&
-// const reference_wrapper<T> -> T&
-// array -> const ref array
-
-
-template<class T>
-struct make_tuple_traits {
- typedef T type;
-
- // commented away, see below (JJ)
- // typedef typename IF<
- // boost::is_function<T>::value,
- // T&,
- // T>::RET type;
-
-};
-
-// The is_function test was there originally for plain function types,
-// which can't be stored as such (we must either store them as references or
-// pointers). Such a type could be formed if make_tuple was called with a
-// reference to a function.
-// But this would mean that a const qualified function type was formed in
-// the make_tuple function and hence make_tuple can't take a function
-// reference as a parameter, and thus T can't be a function type.
-// So is_function test was removed.
-// (14.8.3. says that type deduction fails if a cv-qualified function type
-// is created. (It only applies for the case of explicitly specifying template
-// args, though?)) (JJ)
-
-template<class T>
-struct make_tuple_traits<T&> {
- typedef typename
- detail::generate_error<T&>::
- do_not_use_with_reference_type error;
-};
-
-// Arrays can't be stored as plain types; convert them to references.
-// All arrays are converted to const. This is because make_tuple takes its
-// parameters as const T& and thus the knowledge of the potential
-// non-constness of actual argument is lost.
-template<class T, int n> struct make_tuple_traits <T[n]> {
- typedef const T (&type)[n];
-};
-
-template<class T, int n>
-struct make_tuple_traits<const T[n]> {
- typedef const T (&type)[n];
-};
-
-template<class T, int n> struct make_tuple_traits<volatile T[n]> {
- typedef const volatile T (&type)[n];
-};
-
-template<class T, int n>
-struct make_tuple_traits<const volatile T[n]> {
- typedef const volatile T (&type)[n];
-};
-
-template<class T>
-struct make_tuple_traits<reference_wrapper<T> >{
- typedef T& type;
-};
-
-template<class T>
-struct make_tuple_traits<const reference_wrapper<T> >{
- typedef T& type;
-};
-
-
-
-
-namespace detail {
-
-// a helper traits to make the make_tuple functions shorter (Vesa Karvonen's
-// suggestion)
-template <
- class T0 = null_type, class T1 = null_type, class T2 = null_type,
- class T3 = null_type, class T4 = null_type, class T5 = null_type,
- class T6 = null_type, class T7 = null_type, class T8 = null_type,
- class T9 = null_type
->
-struct make_tuple_mapper {
- typedef
- tuple<typename make_tuple_traits<T0>::type,
- typename make_tuple_traits<T1>::type,
- typename make_tuple_traits<T2>::type,
- typename make_tuple_traits<T3>::type,
- typename make_tuple_traits<T4>::type,
- typename make_tuple_traits<T5>::type,
- typename make_tuple_traits<T6>::type,
- typename make_tuple_traits<T7>::type,
- typename make_tuple_traits<T8>::type,
- typename make_tuple_traits<T9>::type> type;
-};
-
-} // end detail
-
-// -make_tuple function templates -----------------------------------
-inline tuple<> make_tuple() {
- return tuple<>();
-}
-
-template<class T0>
-inline typename detail::make_tuple_mapper<T0>::type
-make_tuple(const T0& t0) {
- typedef typename detail::make_tuple_mapper<T0>::type t;
- return t(t0);
-}
-
-template<class T0, class T1>
-inline typename detail::make_tuple_mapper<T0, T1>::type
-make_tuple(const T0& t0, const T1& t1) {
- typedef typename detail::make_tuple_mapper<T0, T1>::type t;
- return t(t0, t1);
-}
-
-template<class T0, class T1, class T2>
-inline typename detail::make_tuple_mapper<T0, T1, T2>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2) {
- typedef typename detail::make_tuple_mapper<T0, T1, T2>::type t;
- return t(t0, t1, t2);
-}
-
-template<class T0, class T1, class T2, class T3>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3) {
- typedef typename detail::make_tuple_mapper<T0, T1, T2, T3>::type t;
- return t(t0, t1, t2, t3);
-}
-
-template<class T0, class T1, class T2, class T3, class T4>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
- const T4& t4) {
- typedef typename detail::make_tuple_mapper<T0, T1, T2, T3, T4>::type t;
- return t(t0, t1, t2, t3, t4);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
- const T4& t4, const T5& t5) {
- typedef typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5>::type t;
- return t(t0, t1, t2, t3, t4, t5);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5, T6>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
- const T4& t4, const T5& t5, const T6& t6) {
- typedef typename detail::make_tuple_mapper
- <T0, T1, T2, T3, T4, T5, T6>::type t;
- return t(t0, t1, t2, t3, t4, t5, t6);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
- class T7>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5, T6, T7>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
- const T4& t4, const T5& t5, const T6& t6, const T7& t7) {
- typedef typename detail::make_tuple_mapper
- <T0, T1, T2, T3, T4, T5, T6, T7>::type t;
- return t(t0, t1, t2, t3, t4, t5, t6, t7);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
- class T7, class T8>
-inline typename detail::make_tuple_mapper
- <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
- const T4& t4, const T5& t5, const T6& t6, const T7& t7,
- const T8& t8) {
- typedef typename detail::make_tuple_mapper
- <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type t;
- return t(t0, t1, t2, t3, t4, t5, t6, t7, t8);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
- class T7, class T8, class T9>
-inline typename detail::make_tuple_mapper
- <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
- const T4& t4, const T5& t5, const T6& t6, const T7& t7,
- const T8& t8, const T9& t9) {
- typedef typename detail::make_tuple_mapper
- <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type t;
- return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
-}
-
-
-
-// Tie function templates -------------------------------------------------
-template<class T1>
-inline tuple<T1&> tie(T1& t1) {
- return tuple<T1&> (t1);
-}
-
-template<class T1, class T2>
-inline tuple<T1&, T2&> tie(T1& t1, T2& t2) {
- return tuple<T1&, T2&> (t1, t2);
-}
-
-template<class T1, class T2, class T3>
-inline tuple<T1&, T2&, T3&> tie(T1& t1, T2& t2, T3& t3) {
- return tuple<T1&, T2&, T3&> (t1, t2, t3);
-}
-
-template<class T1, class T2, class T3, class T4>
-inline tuple<T1&, T2&, T3&, T4&> tie(T1& t1, T2& t2, T3& t3, T4& t4) {
- return tuple<T1&, T2&, T3&, T4&> (t1, t2, t3, t4);
-}
-
-template<class T1, class T2, class T3, class T4, class T5>
-inline tuple<T1&, T2&, T3&, T4&, T5&>
-tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5) {
- return tuple<T1&, T2&, T3&, T4&, T5&> (t1, t2, t3, t4, t5);
-}
-
-template<class T1, class T2, class T3, class T4, class T5, class T6>
-inline tuple<T1&, T2&, T3&, T4&, T5&, T6&>
-tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6) {
- return tuple<T1&, T2&, T3&, T4&, T5&, T6&> (t1, t2, t3, t4, t5, t6);
-}
-
-template<class T1, class T2, class T3, class T4, class T5, class T6, class T7>
-inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&>
-tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7) {
- return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&> (t1, t2, t3, t4, t5, t6, t7);
-}
-
-template<class T1, class T2, class T3, class T4, class T5, class T6, class T7,
- class T8>
-inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&>
-tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8) {
- return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&>
- (t1, t2, t3, t4, t5, t6, t7, t8);
-}
-
-template<class T1, class T2, class T3, class T4, class T5, class T6, class T7,
- class T8, class T9>
-inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&>
-tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8,
- T9& t9) {
- return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&>
- (t1, t2, t3, t4, t5, t6, t7, t8, t9);
-}
-
-template<class T1, class T2, class T3, class T4, class T5, class T6, class T7,
- class T8, class T9, class T10>
-inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&, T10&>
-tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8,
- T9& t9, T10& t10) {
- return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&, T10&>
- (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
-}
-
-} // end of namespace tuples
-} // end of namespace boost
-
-
-#endif // BOOST_TUPLE_BASIC_HPP
-
-
+++ /dev/null
-// tuple.hpp - Boost Tuple Library --------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
-//
-// Distributed under the 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_TUPLE_HPP
-#define BOOST_TUPLE_HPP
-
-#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730
-// Work around a compiler bug.
-// boost::python::tuple has to be seen by the compiler before the
-// boost::tuple class template.
-namespace boost { namespace python { class tuple; }}
-#endif
-
-#include "boost/config.hpp"
-#include "boost/static_assert.hpp"
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// The MSVC version
-#include "boost/tuple/detail/tuple_basic_no_partial_spec.hpp"
-
-#else
-// other compilers
-#include "boost/ref.hpp"
-#include "boost/tuple/detail/tuple_basic.hpp"
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost {
-
-using tuples::tuple;
-using tuples::make_tuple;
-using tuples::tie;
-#if !defined(BOOST_NO_USING_TEMPLATE)
-using tuples::get;
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-//
-// The "using tuples::get" statement causes the
-// Borland compiler to ICE, use forwarding
-// functions instead:
-//
-template<int N, class HT, class TT>
-inline typename tuples::access_traits<
- typename tuples::element<N, tuples::cons<HT, TT> >::type
- >::non_const_type
-get(tuples::cons<HT, TT>& c) {
- return tuples::get<N,HT,TT>(c);
-}
-// get function for const cons-lists, returns a const reference to
-// the element. If the element is a reference, returns the reference
-// as such (that is, can return a non-const reference)
-template<int N, class HT, class TT>
-inline typename tuples::access_traits<
- typename tuples::element<N, tuples::cons<HT, TT> >::type
- >::const_type
-get(const tuples::cons<HT, TT>& c) {
- return tuples::get<N,HT,TT>(c);
-}
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//
-// MSVC, using declarations don't mix with templates well,
-// so use forwarding functions instead:
-//
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_ref<N, tuples::cons<Head, Tail> >::RET
-get(tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
- return tuples::detail::get_class<N>::get(t);
-}
-
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_const_ref<N, tuples::cons<Head, Tail> >::RET
-get(const tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
- return tuples::detail::get_class<N>::get(t);
-}
-#endif // BOOST_NO_USING_TEMPLATE
-
-} // end namespace boost
-
-
-#endif // BOOST_TUPLE_HPP
+++ /dev/null
-// (C) Copyright David Abrahams 2001.
-// Distributed under the 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_TYPE_DWA20010120_HPP
-# define BOOST_TYPE_DWA20010120_HPP
-
-namespace boost {
-
- // Just a simple "type envelope". Useful in various contexts, mostly to work
- // around some MSVC deficiencies.
- template <class T>
- struct type {};
-
-}
-
-#endif // BOOST_TYPE_DWA20010120_HPP
+++ /dev/null
-// (C) Copyright John Maddock 2000.
-// 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.
-
-// See boost/type_traits/*.hpp for full copyright notices.
-
-#ifndef BOOST_TYPE_TRAITS_HPP
-#define BOOST_TYPE_TRAITS_HPP
-
-#include "boost/type_traits/add_const.hpp"
-#include "boost/type_traits/add_cv.hpp"
-#include "boost/type_traits/add_pointer.hpp"
-#include "boost/type_traits/add_reference.hpp"
-#include "boost/type_traits/add_volatile.hpp"
-#include "boost/type_traits/alignment_of.hpp"
-#include "boost/type_traits/has_nothrow_assign.hpp"
-#include "boost/type_traits/has_nothrow_constructor.hpp"
-#include "boost/type_traits/has_nothrow_copy.hpp"
-#include "boost/type_traits/has_nothrow_destructor.hpp"
-#include "boost/type_traits/has_trivial_assign.hpp"
-#include "boost/type_traits/has_trivial_constructor.hpp"
-#include "boost/type_traits/has_trivial_copy.hpp"
-#include "boost/type_traits/has_trivial_destructor.hpp"
-#include "boost/type_traits/has_virtual_destructor.hpp"
-#include "boost/type_traits/is_signed.hpp"
-#include "boost/type_traits/is_unsigned.hpp"
-#include "boost/type_traits/is_abstract.hpp"
-#include "boost/type_traits/is_arithmetic.hpp"
-#include "boost/type_traits/is_array.hpp"
-#include "boost/type_traits/is_base_and_derived.hpp"
-#include "boost/type_traits/is_base_of.hpp"
-#include "boost/type_traits/is_class.hpp"
-#include "boost/type_traits/is_compound.hpp"
-#include "boost/type_traits/is_const.hpp"
-#include "boost/type_traits/is_convertible.hpp"
-#include "boost/type_traits/is_empty.hpp"
-#include "boost/type_traits/is_enum.hpp"
-#include "boost/type_traits/is_float.hpp"
-#include "boost/type_traits/is_floating_point.hpp"
-#include "boost/type_traits/is_function.hpp"
-#include "boost/type_traits/is_fundamental.hpp"
-#include "boost/type_traits/is_integral.hpp"
-#include "boost/type_traits/is_member_function_pointer.hpp"
-#include "boost/type_traits/is_member_object_pointer.hpp"
-#include "boost/type_traits/is_member_pointer.hpp"
-#include "boost/type_traits/is_object.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/type_traits/is_polymorphic.hpp"
-#include "boost/type_traits/is_pointer.hpp"
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/type_traits/is_same.hpp"
-#include "boost/type_traits/is_scalar.hpp"
-#include "boost/type_traits/is_stateless.hpp"
-#include "boost/type_traits/is_union.hpp"
-#include "boost/type_traits/is_void.hpp"
-#include "boost/type_traits/is_volatile.hpp"
-#include "boost/type_traits/rank.hpp"
-#include "boost/type_traits/extent.hpp"
-#include "boost/type_traits/remove_bounds.hpp"
-#include "boost/type_traits/remove_extent.hpp"
-#include "boost/type_traits/remove_all_extents.hpp"
-#include "boost/type_traits/remove_const.hpp"
-#include "boost/type_traits/remove_cv.hpp"
-#include "boost/type_traits/remove_pointer.hpp"
-#include "boost/type_traits/remove_reference.hpp"
-#include "boost/type_traits/remove_volatile.hpp"
-#include "boost/type_traits/type_with_alignment.hpp"
-#include "boost/type_traits/function_traits.hpp"
-#include "boost/type_traits/aligned_storage.hpp"
-
-#include "boost/type_traits/ice.hpp"
-
-#endif // BOOST_TYPE_TRAITS_HPP
-
-
-
-
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_ADD_CONST_HPP_INCLUDED
-#define BOOST_TT_ADD_CONST_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-// * convert a type T to const type - add_const<T>
-// this is not required since the result is always
-// the same as "T const", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_const is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-# pragma warning(push)
-# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const)
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_const,T&,T&)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_ADD_CONST_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_ADD_CV_HPP_INCLUDED
-#define BOOST_TT_ADD_CV_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-// * convert a type T to a const volatile type - add_cv<T>
-// this is not required since the result is always
-// the same as "T const volatile", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_volatile is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-# pragma warning(push)
-# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_cv,T,T const volatile)
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_cv,T&,T&)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_ADD_CV_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_ADD_POINTER_HPP_INCLUDED
-#define BOOST_TT_ADD_POINTER_HPP_INCLUDED
-
-#include "boost/type_traits/remove_reference.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-//
-// For some reason this implementation stops Borlands compiler
-// from dropping cv-qualifiers, it still fails with references
-// to arrays for some reason though (shrug...) (JM 20021104)
-//
-template <typename T>
-struct add_pointer_impl
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&>
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const>
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&volatile>
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const volatile>
-{
- typedef T* type;
-};
-
-#else
-
-template <typename T>
-struct add_pointer_impl
-{
- typedef typename remove_reference<T>::type no_ref_type;
- typedef no_ref_type* type;
-};
-
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_pointer,T,typename detail::add_pointer_impl<T>::type)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_ADD_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/detail/workaround.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
-template <bool x>
-struct reference_adder
-{
- template <typename T> struct result_
- {
- typedef T& type;
- };
-};
-
-template <>
-struct reference_adder<true>
-{
- template <typename T> struct result_
- {
- typedef T type;
- };
-};
-
-template <typename T>
-struct add_reference_impl
-{
- typedef typename reference_adder<
- ::boost::is_reference<T>::value
- >::template result_<T> result;
-
- typedef typename result::type type;
-};
-
-#else
-
-template <typename T>
-struct add_reference_impl
-{
- typedef T& type;
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
-#endif
-
-#endif
-
-// these full specialisations are always required:
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void,void)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const,void const)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void volatile,void volatile)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const volatile)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename detail::add_reference_impl<T>::type)
-
-// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional
-// level of indirection, here
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_ADD_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-// * convert a type T to volatile type - add_volatile<T>
-// this is not required since the result is always
-// the same as "T volatile", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_volatile is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-# pragma warning(push)
-# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_volatile,T,T volatile)
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_volatile,T&,T&)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
+++ /dev/null
-
-// (C) John Maddock 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/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-# define BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-# include <boost/aligned_storage.hpp>
-#endif // BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 2000.
-// 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_ALIGNMENT_OF_HPP_INCLUDED
-#define BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-
-#include "boost/config.hpp"
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/size_t_trait_def.hpp"
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4121) // alignment is sensitive to packing
-#endif
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option push -Vx- -Ve-
-#endif
-
-namespace boost {
-
-template <typename T> struct alignment_of;
-
-// get the alignment of some arbitrary type:
-namespace detail {
-
-template <typename T>
-struct alignment_of_hack
-{
- char c;
- T t;
- alignment_of_hack();
-};
-
-
-template <unsigned A, unsigned S>
-struct alignment_logic
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S);
-};
-
-
-template< typename T >
-struct alignment_of_impl
-{
- BOOST_STATIC_CONSTANT(std::size_t, value =
- (::boost::detail::alignment_logic<
- sizeof(detail::alignment_of_hack<T>) - sizeof(T),
- sizeof(T)
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(alignment_of,T,::boost::detail::alignment_of_impl<T>::value)
-
-// references have to be treated specially, assume
-// that a reference is just a special pointer:
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct alignment_of<T&>
- : alignment_of<T*>
-{
-};
-#endif
-#ifdef __BORLANDC__
-// long double gives an incorrect value of 10 (!)
-// unless we do this...
-struct long_double_wrapper{ long double ld; };
-template<> struct alignment_of<long double>
- : public alignment_of<long_double_wrapper>{};
-#endif
-
-// void has to be treated specially:
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void,0)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void volatile,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0)
-#endif
-
-} // namespace boost
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option pop
-#endif
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#include "boost/type_traits/detail/size_t_trait_undef.hpp"
-
-#endif // BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-
+++ /dev/null
-
-// Copyright 2001-2003 Aleksey Gurtovoy.
-// 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_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-#define BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-
-#include "boost/mpl/aux_/lambda_support.hpp"
-#include "boost/config.hpp"
-
-// these are needed regardless of BOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace boost { namespace detail {
-template< typename T > struct remove_const_impl { typedef T type; };
-template< typename T > struct remove_volatile_impl { typedef T type; };
-template< typename T > struct remove_pointer_impl { typedef T type; };
-template< typename T > struct remove_reference_impl { typedef T type; };
-typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
-}}
-#endif
-
-// agurt, 27/jun/03: disable the workaround if user defined
-// BOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || defined(BOOST_TT_NO_BROKEN_COMPILER_SPEC)
-
-# define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/
-
-#else
-
-// same as BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it
-// never gets #undef-ined
-# define BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
-
-# define BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const volatile,T volatile) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T volatile,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T const volatile,T const) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T volatile) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const volatile) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T volatile*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const volatile*) \
- /**/
-
-# define BOOST_TT_BROKEN_COMPILER_SPEC(T) \
- namespace boost { namespace detail { \
- typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces \
- please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T volatile*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const volatile*) \
- }} \
- /**/
-
-# include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_BROKEN_COMPILER_SPEC(bool)
-BOOST_TT_BROKEN_COMPILER_SPEC(char)
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-BOOST_TT_BROKEN_COMPILER_SPEC(wchar_t)
-#endif
-BOOST_TT_BROKEN_COMPILER_SPEC(signed char)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned char)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed short)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned short)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed int)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned int)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed long)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned long)
-BOOST_TT_BROKEN_COMPILER_SPEC(float)
-BOOST_TT_BROKEN_COMPILER_SPEC(double)
-//BOOST_TT_BROKEN_COMPILER_SPEC(long double)
-
-// for backward compatibility
-#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \
- BOOST_TT_BROKEN_COMPILER_SPEC(T) \
-/**/
-
-#endif // BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_CONFIG_HPP_INCLUDED
-#define BOOST_TT_CONFIG_HPP_INCLUDED
-
-#ifndef BOOST_CONFIG_HPP
-#include "boost/config.hpp"
-#endif
-
-//
-// whenever we have a conversion function with elipses
-// it needs to be declared __cdecl to suppress compiler
-// warnings from MS and Borland compilers (this *must*
-// appear before we include is_same.hpp below):
-#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
-# define BOOST_TT_DECL __cdecl
-#else
-# define BOOST_TT_DECL /**/
-#endif
-
-# if (defined(__MWERKS__) && __MWERKS__ >= 0x3000) || (defined(BOOST_MSVC) && (BOOST_MSVC > 1301)) || defined(__EDG_VERSION__) || (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__DMC__) || ( defined(__IBMCPP__) && (__IBMCPP__ >= 600 ) ) || defined(BOOST_NO_COMPILER_CONFIG)
-# define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-#endif
-
-//
-// Define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-// when we can't test for function types with elipsis:
-//
-#if defined(__GNUC__) && (__GNUC__ < 3)
-# define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-#endif
-
-//
-// define BOOST_TT_TEST_MS_FUNC_SIGS
-// when we want to test __stdcall etc function types with is_function etc
-// (Note, does not work with Borland, even though it does support __stdcall etc):
-//
-#if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__)
-# define BOOST_TT_TEST_MS_FUNC_SIGS
-#endif
-
-//
-// define BOOST_TT_NO_CV_FUNC_TEST
-// if tests for cv-qualified member functions don't
-// work in is_member_function_pointer
-//
-#if (defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)
-# define BOOST_TT_NO_CV_FUNC_TEST
-#endif
-
-#endif // BOOST_TT_CONFIG_HPP_INCLUDED
-
-
+++ /dev/null
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu)
-// Copyright 1999, 2000 Jaakko J\84rvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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_CONVERSION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-
-#include "boost/type_traits/is_convertible.hpp"
-
-#endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-//
-// defines traits classes for cv-qualified types:
-// is_const, is_volatile, remove_const, remove_volatile, remove_cv.
-
-#ifndef BOOST_TT_CV_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CV_TRAITS_HPP_INCLUDED
-
-#include "boost/type_traits/add_const.hpp"
-#include "boost/type_traits/add_volatile.hpp"
-#include "boost/type_traits/add_cv.hpp"
-#include "boost/type_traits/is_const.hpp"
-#include "boost/type_traits/is_volatile.hpp"
-#include "boost/type_traits/remove_const.hpp"
-#include "boost/type_traits/remove_volatile.hpp"
-#include "boost/type_traits/remove_cv.hpp"
-
-#endif // BOOST_TT_CV_TRAITS_HPP_INCLUDED
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/config.hpp>
-
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x570)
-# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- typedef ::boost::integral_constant<bool,C> type; \
- enum { value = type::value }; \
- /**/
-# define BOOST_TT_AUX_BOOL_C_BASE(C)
-
-#elif defined(BOOST_MSVC) && BOOST_MSVC <= 1200
-
-# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- typedef ::boost::integral_constant<bool,C> base_; \
- using base_::value; \
- /**/
-
-#endif
-
-#ifndef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/
-#endif
-
-#ifndef BOOST_TT_AUX_BOOL_C_BASE
-# define BOOST_TT_AUX_BOOL_C_BASE(C) : ::boost::integral_constant<bool,C>
-#endif
-
-
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \
-template< typename T1, typename T2 > struct trait \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \
-template<> struct trait< sp > \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \
-template<> struct trait< sp1,sp2 > \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
-template<> struct trait##_impl< sp > \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
-template<> struct trait##_impl< sp1,sp2 > \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \
-template< param > struct trait< sp > \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \
-template< param1, param2 > struct trait< sp > \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
-template< param > struct trait< sp1,sp2 > \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \
-template< param1, param2 > struct trait< sp1,sp2 > \
- BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
-template< param > struct trait##_impl< sp1,sp2 > \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-# define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
- BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
- BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const,value) \
- BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp volatile,value) \
- BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const volatile,value) \
- /**/
-#else
-# define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
- BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
- /**/
-#endif
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_C_BASE
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-
-#include "boost/config.hpp"
-#include "boost/detail/workaround.hpp"
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// implementation helper:
-
-
-#if !(BOOST_WORKAROUND(__GNUC__,== 3) && (__GNUC_MINOR__ <= 2))
-namespace boost {
-namespace detail {
-#else
-#include "boost/type_traits/detail/yes_no_type.hpp"
-namespace boost {
-namespace type_traits {
-namespace gcc8503 {
-#endif
-
-template <typename T> struct cv_traits_imp {};
-
-template <typename T>
-struct cv_traits_imp<T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = false);
- BOOST_STATIC_CONSTANT(bool, is_volatile = false);
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = true);
- BOOST_STATIC_CONSTANT(bool, is_volatile = false);
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<volatile T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = false);
- BOOST_STATIC_CONSTANT(bool, is_volatile = true);
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const volatile T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = true);
- BOOST_STATIC_CONSTANT(bool, is_volatile = true);
- typedef T unqualified_type;
-};
-
-#if BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2)
-// We have to exclude function pointers
-// (see http://gcc.gnu.org/bugzilla/show_bug.cgi?8503)
-yes_type mini_funcptr_tester(...);
-no_type mini_funcptr_tester(const volatile void*);
-
-} // namespace gcc8503
-} // namespace type_traits
-
-namespace detail {
-
-// Use the implementation above for non function pointers
-template <typename T, unsigned Select
- = (unsigned)sizeof(::boost::type_traits::gcc8503::mini_funcptr_tester((T)0)) >
-struct cv_traits_imp : ::boost::type_traits::gcc8503::cv_traits_imp<T> { };
-
-// Functions are never cv-qualified
-template <typename T> struct cv_traits_imp<T*,1>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = false);
- BOOST_STATIC_CONSTANT(bool, is_volatile = false);
- typedef T unqualified_type;
-};
-
-#endif
-
-} // namespace detail
-} // namespace boost
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
+++ /dev/null
-// Copyright David Abrahams 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-namespace boost {
-namespace type_traits {
-
-// Utility class which always "returns" false
-struct false_result
-{
- template <typename T> struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-}} // namespace boost::type_traits
-
-#endif // BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock and Steve Cleary 2000.
-//
-// 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_DETAIL_ICE_AND_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-namespace boost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
-struct ice_and;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_and
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <>
-struct ice_and<true, true, true, true, true, true, true>
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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_DETAIL_ICE_EQ_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-namespace boost {
-namespace type_traits {
-
-template <int b1, int b2>
-struct ice_eq
-{
- BOOST_STATIC_CONSTANT(bool, value = (b1 == b2));
-};
-
-template <int b1, int b2>
-struct ice_ne
-{
- BOOST_STATIC_CONSTANT(bool, value = (b1 != b2));
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template <int b1, int b2> bool const ice_eq<b1,b2>::value;
-template <int b1, int b2> bool const ice_ne<b1,b2>::value;
-#endif
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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_DETAIL_ICE_NOT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-namespace boost {
-namespace type_traits {
-
-template <bool b>
-struct ice_not
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_not<true>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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_DETAIL_ICE_OR_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-namespace boost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
-struct ice_or;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_or
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_or<false, false, false, false, false, false, false>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
+++ /dev/null
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com)
-//
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include "boost/preprocessor/iterate.hpp"
-# include "boost/preprocessor/enum_params.hpp"
-# include "boost/preprocessor/comma_if.hpp"
-#endif
-
-namespace boost {
-namespace type_traits {
-
-template <class R>
-struct is_function_ptr_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R >
-struct is_function_ptr_helper<R (*)()> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R >
-struct is_function_ptr_helper<R (*)( ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_function_ptr_helper.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include "boost/preprocessor/iterate.hpp"
-# include "boost/preprocessor/enum_params.hpp"
-# include "boost/preprocessor/comma_if.hpp"
-#endif
-
-namespace boost {
-namespace type_traits {
-
-template <typename T>
-struct is_mem_fun_pointer_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
-
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/size_t.hpp>
-
-#include <cstddef>
-
-#if !defined(BOOST_MSVC) || BOOST_MSVC > 1200
-# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::integral_constant<std::size_t,C>
-# define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/
-#else
-# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::mpl::size_t<C>
-# define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
- typedef ::boost::mpl::size_t<C> base_; \
- using base_::value; \
- /**/
-#endif
-
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
- : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
- BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \
-template<> struct trait<spec> \
- : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
- BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \
-template< param > struct trait<spec> \
- : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-}; \
-/**/
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/template_arity_fwd.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
- && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \
-namespace mpl { namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i, typename T) > \
-struct template_arity< \
- name< BOOST_MPL_PP_PARAMS(i, T) > \
- > \
- : int_<i> \
-{ \
-}; \
-}} \
-/**/
-#else
-# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
-#endif
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-#define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
-template< typename T > struct trait \
-{ \
- typedef result type; \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait<spec> \
-{ \
- typedef result type; \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
-template< param1, param2 > struct trait<spec> \
-{ \
- typedef result; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait##_impl<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
+++ /dev/null
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#undef BOOST_TT_AUX_TYPE_TRAIT_DEF1
-#undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1
+++ /dev/null
-
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-//
-// macros and helpers for working with integral-constant-expressions.
-
-#ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-#define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-
-namespace boost {
-namespace type_traits {
-
-typedef char yes_type;
-struct no_type
-{
- char padding[8];
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_EXTENT_HPP_INCLUDED
-#define BOOST_TT_EXTENT_HPP_INCLUDED
-
-// should be the last #include
-#include "boost/type_traits/detail/size_t_trait_def.hpp"
-
-namespace boost {
-
-namespace detail{
-
-template <class T, std::size_t N>
-struct extent_imp
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T const[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T const volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T[R],0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const[R], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T volatile[R], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const volatile[R], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__)
-template <class T, std::size_t N>
-struct extent_imp<T[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T const[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T const volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T>
-struct extent_imp<T[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T volatile[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const volatile[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#endif
-#endif
-}
-
-template <class T, std::size_t N = 0>
-struct extent
- : public ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value>
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- typedef ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value> base_;
- using base_::value;
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,extent,(T))
-};
-
-} // namespace boost
-
-#include "boost/type_traits/detail/size_t_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// 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_FUNCTION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace detail {
-
-template<typename Function> struct function_traits_helper;
-
-template<typename R>
-struct function_traits_helper<R (*)(void)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 0);
- typedef R result_type;
-};
-
-template<typename R, typename T1>
-struct function_traits_helper<R (*)(T1)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 1);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T1 argument_type;
-};
-
-template<typename R, typename T1, typename T2>
-struct function_traits_helper<R (*)(T1, T2)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 2);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T1 first_argument_type;
- typedef T2 second_argument_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3>
-struct function_traits_helper<R (*)(T1, T2, T3)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 3);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-struct function_traits_helper<R (*)(T1, T2, T3, T4)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 4);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 5);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 6);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 7);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 8);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
- typedef T8 arg8_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 9);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
- typedef T8 arg8_type;
- typedef T9 arg9_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9,
- typename T10>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
-{
- BOOST_STATIC_CONSTANT(int, arity = 10);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
- typedef T8 arg8_type;
- typedef T9 arg9_type;
- typedef T10 arg10_type;
-};
-
-} // end namespace detail
-
-template<typename Function>
-struct function_traits :
- public detail::function_traits_helper<typename add_pointer<Function>::type>
-{
-};
-
-#else
-
-namespace detail {
-
-template<int N>
-struct type_of_size
-{
- char elements[N];
-};
-
-template<typename R>
-type_of_size<1> function_arity_helper(R (*f)());
-
-template<typename R, typename T1>
-type_of_size<2> function_arity_helper(R (*f)(T1));
-
-template<typename R, typename T1, typename T2>
-type_of_size<3> function_arity_helper(R (*f)(T1, T2));
-
-template<typename R, typename T1, typename T2, typename T3>
-type_of_size<4> function_arity_helper(R (*f)(T1, T2, T3));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-type_of_size<5> function_arity_helper(R (*f)(T1, T2, T3, T4));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5>
-type_of_size<6> function_arity_helper(R (*f)(T1, T2, T3, T4, T5));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6>
-type_of_size<7> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7>
-type_of_size<8> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8>
-type_of_size<9> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9>
-type_of_size<10> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8,
- T9));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9,
- typename T10>
-type_of_size<11> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8,
- T9, T10));
-} // end namespace detail
-
-// Won't work with references
-template<typename Function>
-struct function_traits
-{
- BOOST_STATIC_CONSTANT(int, arity = (sizeof(detail::function_arity_helper((Function*)0))-1));
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-}
-
-#endif // BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_NOTHROW_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-
-#include "boost/type_traits/has_trivial_assign.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_assign_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_assign<T>::value,
- BOOST_HAS_NOTHROW_ASSIGN(T)
- >::value));
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::boost::detail::has_nothrow_assign_imp<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-
-#include "boost/type_traits/has_trivial_constructor.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_constructor_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_constructor<T>::value,
- BOOST_HAS_NOTHROW_CONSTRUCTOR(T)
- >::value));
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_NOTHROW_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-
-#include "boost/type_traits/has_trivial_copy.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_copy_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_copy<T>::value,
- BOOST_HAS_NOTHROW_COPY(T)
- >::value));
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::boost::detail::has_nothrow_copy_imp<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-
-#include "boost/type_traits/has_trivial_destructor.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_destructor,T,::boost::has_trivial_destructor<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_TRIVIAL_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/type_traits/is_const.hpp"
-#include "boost/type_traits/is_volatile.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_assign_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_ASSIGN(T)
- >::value,
- ::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_assign,T,::boost::detail::has_trivial_assign_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-#include "boost/type_traits/is_pod.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 <typename T>
-struct has_trivial_ctor_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_constructor,T,::boost::detail::has_trivial_ctor_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_TRIVIAL_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-#include "boost/type_traits/is_volatile.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_copy_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_COPY(T)
- >::value,
- ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy,T,::boost::detail::has_trivial_copy_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-#include "boost/type_traits/is_pod.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 <typename T>
-struct has_trivial_dtor_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_DESTRUCTOR(T)
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::boost::detail::has_trivial_dtor_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,BOOST_HAS_VIRTUAL_DESTRUCTOR(T))
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-//
-// macros and helpers for working with integral-constant-expressions.
-
-#ifndef BOOST_TT_ICE_HPP_INCLUDED
-#define BOOST_TT_ICE_HPP_INCLUDED
-
-#include "boost/type_traits/detail/yes_no_type.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-#include "boost/type_traits/detail/ice_eq.hpp"
-
-#endif // BOOST_TT_ICE_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock 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)
-
-#ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-#define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost{
-
-#if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
-template <class T, int val>
-#else
-template <class T, T val>
-#endif
-struct integral_constant : public mpl::integral_c<T, val>
-{
- //BOOST_STATIC_CONSTANT(T, value = val);
- //typedef T value_type;
- typedef integral_constant<T,val> type;
-
-#if 0
- //
- // everything that follows now, is MPL-compatibility code:
- //
- typedef ::boost::mpl::integral_c_tag tag;
-
- // have to #ifdef here: some compilers don't like the 'val + 1' form (MSVC),
- // while some other don't like 'value + 1' (Borland), and some don't like
- // either
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
-private:
- BOOST_STATIC_CONSTANT(T, next_value = BOOST_MPL_AUX_STATIC_CAST(T, (val + 1)));
- BOOST_STATIC_CONSTANT(T, prior_value = BOOST_MPL_AUX_STATIC_CAST(T, (val - 1)));
-public:
- typedef integral_constant<T,next_value> next;
- typedef integral_constant<T,prior_value> prior;
-#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
- || BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
- typedef integral_constant<T, ( BOOST_MPL_AUX_STATIC_CAST(T, (val + 1)) )> next;
- typedef integral_constant<T, ( BOOST_MPL_AUX_STATIC_CAST(T, (val - 1)) )> prior;
-#else
- typedef integral_constant<T, ( BOOST_MPL_AUX_STATIC_CAST(T, (value + 1)) )> next;
- typedef integral_constant<T, ( BOOST_MPL_AUX_STATIC_CAST(T, (value - 1)) )> prior;
-#endif
-
- // enables uniform function call syntax for families of overloaded
- // functions that return objects of both arithmetic ('int', 'long',
- // 'double', etc.) and wrapped integral types (for an example, see
- // "mpl/example/power.cpp")
- operator T() const { return static_cast<T>(this->value); }
-#endif
-};
-
-template<> struct integral_constant<bool,true> : public mpl::true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- typedef mpl::true_ base_;
- using base_::value;
-#endif
- typedef integral_constant<bool,true> type;
-};
-template<> struct integral_constant<bool,false> : public mpl::false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
- typedef mpl::false_ base_;
- using base_::value;
-#endif
- typedef integral_constant<bool,false> type;
-};
-
-typedef integral_constant<bool,true> true_type;
-typedef integral_constant<bool,false> false_type;
-
-}
-
-#endif
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_INTRINSICS_HPP_INCLUDED
-#define BOOST_TT_INTRINSICS_HPP_INCLUDED
-
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
-#include "boost/type_traits/config.hpp"
-#endif
-
-//
-// Helper macros for builtin compiler support.
-// If your compiler has builtin support for any of the following
-// traits concepts, then redefine the appropriate macros to pick
-// up on the compiler support:
-//
-// (these should largely ignore cv-qualifiers)
-// BOOST_IS_UNION(T) should evaluate to true if T is a union type
-// BOOST_IS_POD(T) should evaluate to true if T is a POD type
-// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty struct or union
-// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect
-// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy
-// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy
-// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect
-// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw
-// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw
-// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw
-// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor
-
-#ifdef BOOST_HAS_SGI_TYPE_TRAITS
- // Hook into SGI's __type_traits class, this will pick up user supplied
- // specializations as well as SGI - compiler supplied specializations.
-# include "boost/type_traits/is_same.hpp"
-# include <type_traits.h>
-# define BOOST_IS_POD(T) ::boost::is_same< typename ::__type_traits<T>::is_POD_type, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_default_constructor, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_copy_constructor, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_assignment_operator, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_destructor, ::__true_type>::value
-
-# ifdef __sgi
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-# endif
-#endif
-
-#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
- // Metrowerks compiler is acquiring intrinsic type traits support
- // post version 8. We hook into the published interface to pick up
- // user defined specializations as well as compiler intrinsics as
- // and when they become available:
-# include <msl_utility>
-# define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union<T>::value
-# define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD<T>::value
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor<T>::value
-# define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor<T>::value
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment<T>::value
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor<T>::value
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(BOOST_MSVC) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >=140050215)
-# define BOOST_IS_UNION(T) __is_union(T)
-# define BOOST_IS_POD(T) __is_pod(T)
-# define BOOST_IS_EMPTY(T) __is_empty(T)
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-# define BOOST_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-# define BOOST_HAS_NOTHROW_COPY(T) __has_nothrow_copy(T)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T)
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-
-#ifndef BOOST_IS_UNION
-# define BOOST_IS_UNION(T) false
-#endif
-
-#ifndef BOOST_IS_POD
-# define BOOST_IS_POD(T) false
-#endif
-
-#ifndef BOOST_IS_EMPTY
-# define BOOST_IS_EMPTY(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_CONSTRUCTOR
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_COPY
-# define BOOST_HAS_TRIVIAL_COPY(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_ASSIGN
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_DESTRUCTOR
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_CONSTRUCTOR
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_COPY
-# define BOOST_HAS_NOTHROW_COPY(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_ASSIGN
-# define BOOST_HAS_NOTHROW_ASSIGN(T) false
-#endif
-
-#ifndef BOOST_HAS_VIRTUAL_DESTRUCTOR
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) false
-#endif
-
-#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED
-
-
-
-
+++ /dev/null
-#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP
-#define BOOST_TT_IS_ABSTRACT_CLASS_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// is_abstract_class.hpp:
-//
-// (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey
-// 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 for updates, documentation, and revision history.
-//
-
-// Compile type discovery whether given type is abstract class or not.
-//
-// Requires DR 337 to be supported by compiler
-// (http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#337).
-//
-//
-// Believed (Jan 2004) to work on:
-// - GCC 3.4
-// - VC++ 7.1
-// - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2)
-//
-// Doesn't work on:
-// - VC++6, VC++7.0 and less
-// - GCC 3.3.X and less
-// - Borland C++ 6 and less
-//
-//
-// History:
-// - Originally written by Rani Sharoni, see
-// http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com
-// At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1.
-// - Adapted and added into Boost.Serialization library by Robert Ramey
-// (starting with submission #10).
-// - Jan 2004: GCC 3.4 fixed to suport DR337 (Giovanni Bajo).
-// - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek).
-// - Nov 2004: Christoph Ludwig found that the implementation did not work with
-// template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig
-// and John Maddock.
-// - Dec 2004: Added new config macro BOOST_NO_IS_ABSTRACT which causes the template
-// to degrade gracefully, rather than trash the compiler (John Maddock).
-//
-
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include "boost/type_traits/detail/ice_and.hpp"
-#ifdef BOOST_NO_IS_ABSTRACT
-#include <boost/type_traits/is_polymorphic.hpp>
-#endif
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-
-namespace boost {
-namespace detail{
-
-#ifndef BOOST_NO_IS_ABSTRACT
-template<class T>
-struct is_abstract_imp2
-{
- // Deduction fails if T is void, function type,
- // reference type (14.8.2/2)or an abstract class type
- // according to review status issue #337
- //
- template<class U>
- static type_traits::no_type check_sig(U (*)[1]);
- template<class U>
- static type_traits::yes_type check_sig(...);
- //
- // T must be a complete type, further if T is a template then
- // it must be instantiated in order for us to get the right answer:
- //
- BOOST_STATIC_ASSERT(sizeof(T) != 0);
-
- // 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(is_abstract_imp2<T>::template check_sig<T>(0)));
-#else
- BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig<T>(0)));
-#endif
-
- BOOST_STATIC_CONSTANT(bool, value =
- (s1 == sizeof(type_traits::yes_type)));
-};
-
-template <bool v>
-struct is_abstract_select
-{
- template <class T>
- struct rebind
- {
- typedef is_abstract_imp2<T> type;
- };
-};
-template <>
-struct is_abstract_select<false>
-{
- template <class T>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <class T>
-struct is_abstract_imp
-{
- typedef is_abstract_select< ::boost::is_class<T>::value> selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type type;
-
- BOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#endif
-}
-
-#ifndef BOOST_NO_IS_ABSTRACT
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_abstract_imp<T>::value)
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_polymorphic_imp<T>::value)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_ARITHMETIC_HPP_INCLUDED
-#define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-
-#include "boost/type_traits/is_integral.hpp"
-#include "boost/type_traits/is_float.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template< typename T >
-struct is_arithmetic_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_integral<T>::value,
- ::boost::is_float<T>::value
- >::value));
-};
-
-} // namespace detail
-
-//* is a type T an arithmetic type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::boost::detail::is_arithmetic_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-// Some fixes for is_array are based on a newgroup posting by Jonathan Lundquist.
-
-
-#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED
-#define BOOST_TT_IS_ARRAY_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include "boost/type_traits/detail/yes_no_type.hpp"
-# include "boost/type_traits/detail/wrap.hpp"
-#endif
-
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true)
-#endif
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-using ::boost::type_traits::wrap;
-
-template< typename T > T(* is_array_tester1(wrap<T>) )(wrap<T>);
-char BOOST_TT_DECL is_array_tester1(...);
-
-template< typename T> no_type is_array_tester2(T(*)(wrap<T>));
-yes_type BOOST_TT_DECL is_array_tester2(...);
-
-template< typename T >
-struct is_array_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(::boost::detail::is_array_tester2(
- ::boost::detail::is_array_tester1(
- ::boost::type_traits::wrap<T>()
- )
- )) == 1
- );
-};
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::boost::detail::is_array_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Rani Sharoni 2003.
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
-#define BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
-
-#include "boost/type_traits/is_class.hpp"
-#include "boost/type_traits/is_same.hpp"
-#include "boost/type_traits/is_convertible.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/remove_cv.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x570) \
- && !BOOST_WORKAROUND(__SUNPRO_CC , BOOST_TESTED_AT(0x540)) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
- && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
- // The EDG version number is a lower estimate.
- // It is not currently known which EDG version
- // exactly fixes the problem.
-
-/*************************************************************************
-
-This version detects ambiguous base classes and private base classes
-correctly, and was devised by Rani Sharoni.
-
-Explanation by Terje Slettebø and Rani Sharoni.
-
-Let's take the multiple base class below as an example, and the following
-will also show why there's not a problem with private or ambiguous base
-class:
-
-struct B {};
-struct B1 : B {};
-struct B2 : B {};
-struct D : private B1, private B2 {};
-
-is_base_and_derived<B, D>::value;
-
-First, some terminology:
-
-SC - Standard conversion
-UDC - User-defined conversion
-
-A user-defined conversion sequence consists of an SC, followed by an UDC,
-followed by another SC. Either SC may be the identity conversion.
-
-When passing the default-constructed Host object to the overloaded check_sig()
-functions (initialization 8.5/14/4/3), we have several viable implicit
-conversion sequences:
-
-For "static no_type check_sig(B const volatile *, int)" we have the conversion
-sequences:
-
-C -> C const (SC - Qualification Adjustment) -> B const volatile* (UDC)
-C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* ->
- B const volatile* (SC - Conversion)
-
-For "static yes_type check_sig(D const volatile *, T)" we have the conversion
-sequence:
-
-C -> D const volatile* (UDC)
-
-According to 13.3.3.1/4, in context of user-defined conversion only the
-standard conversion sequence is considered when selecting the best viable
-function, so it only considers up to the user-defined conversion. For the
-first function this means choosing between C -> C const and C -> C, and it
-chooses the latter, because it's a proper subset (13.3.3.2/3/2) of the
-former. Therefore, we have:
-
-C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* ->
- B const volatile* (SC - Conversion)
-C -> D const volatile* (UDC)
-
-Here, the principle of the "shortest subsequence" applies again, and it
-chooses C -> D const volatile*. This shows that it doesn't even need to
-consider the multiple paths to B, or accessibility, as that possibility is
-eliminated before it could possibly cause ambiguity or access violation.
-
-If D is not derived from B, it has to choose between C -> C const -> B const
-volatile* for the first function, and C -> D const volatile* for the second
-function, which are just as good (both requires a UDC, 13.3.3.2), had it not
-been for the fact that "static no_type check_sig(B const volatile *, int)" is
-not templated, which makes C -> C const -> B const volatile* the best choice
-(13.3.3/1/4), resulting in "no".
-
-Also, if Host::operator B const volatile* hadn't been const, the two
-conversion sequences for "static no_type check_sig(B const volatile *, int)", in
-the case where D is derived from B, would have been ambiguous.
-
-See also
-http://groups.google.com/groups?selm=df893da6.0301280859.522081f7%40posting.
-google.com and links therein.
-
-*************************************************************************/
-
-template <typename B, typename D>
-struct bd_helper
-{
- //
- // This VC7.1 specific workaround stops the compiler from generating
- // an internal compiler error when compiling with /vmg (thanks to
- // Aleksey Gurtovoy for figuring out the workaround).
- //
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
- template <typename T>
- static type_traits::yes_type check_sig(D const volatile *, T);
- static type_traits::no_type check_sig(B const volatile *, int);
-#else
- static type_traits::yes_type check_sig(D const volatile *, long);
- static type_traits::no_type check_sig(B const volatile * const&, int);
-#endif
-};
-
-template<typename B, typename D>
-struct is_base_and_derived_impl2
-{
- struct Host
- {
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
- operator B const volatile *() const;
-#else
- operator B const volatile * const&() const;
-#endif
- operator D const volatile *();
- };
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(bd_helper<B,D>::check_sig(Host(), 0)) == sizeof(type_traits::yes_type));
-};
-
-#else
-
-//
-// broken version:
-//
-template<typename B, typename D>
-struct is_base_and_derived_impl2
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::is_convertible<D*,B*>::value));
-};
-
-#define BOOST_BROKEN_IS_BASE_AND_DERIVED
-
-#endif
-
-template <typename B, typename D>
-struct is_base_and_derived_impl3
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool ic1, bool ic2, bool iss>
-struct is_base_and_derived_select
-{
- template <class T, class U>
- struct rebind
- {
- typedef is_base_and_derived_impl3<T,U> type;
- };
-};
-
-template <>
-struct is_base_and_derived_select<true,true,false>
-{
- template <class T, class U>
- struct rebind
- {
- typedef is_base_and_derived_impl2<T,U> type;
- };
-};
-
-template <typename B, typename D>
-struct is_base_and_derived_impl
-{
- typedef typename remove_cv<B>::type ncvB;
- typedef typename remove_cv<D>::type ncvD;
-
- typedef is_base_and_derived_select<
- ::boost::is_class<B>::value,
- ::boost::is_class<D>::value,
- ::boost::is_same<B,D>::value> selector;
- typedef typename selector::template rebind<ncvB,ncvD> binder;
- typedef typename binder::type bound_type;
-
- BOOST_STATIC_CONSTANT(bool, value = bound_type::value);
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
- is_base_and_derived
- , Base
- , Derived
- , (::boost::detail::is_base_and_derived_impl<Base,Derived>::value)
- )
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived&,false)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Rani Sharoni 2003-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/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_BASE_OF_HPP_INCLUDED
-#define BOOST_TT_IS_BASE_OF_HPP_INCLUDED
-
-#include "boost/type_traits/is_base_and_derived.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
- is_base_of
- , Base
- , Derived
- , (::boost::detail::is_base_and_derived_impl<Base,Derived>::value)
- )
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived&,false)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000-2003.
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED
-#define BOOST_TT_IS_CLASS_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-# include "boost/type_traits/is_union.hpp"
-# include "boost/type_traits/detail/ice_and.hpp"
-# include "boost/type_traits/detail/ice_not.hpp"
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-# include "boost/type_traits/detail/yes_no_type.hpp"
-#else
-# include "boost/type_traits/is_scalar.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_void.hpp"
-# include "boost/type_traits/is_function.hpp"
-#endif
-
-#ifdef __EDG_VERSION__
-# include "boost/type_traits/remove_cv.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-// This is actually the conforming implementation which works with
-// abstract classes. However, enough compilers have trouble with
-// it that most will use the one in
-// boost/type_traits/object_traits.hpp. This implementation
-// actually works with VC7.0, but other interactions seem to fail
-// when we use it.
-
-// is_class<> metafunction due to Paul Mensonides
-// (leavings@attbi.com). For more details:
-// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1
-#if defined(__GNUC__) && !defined(__EDG_VERSION__)
-
-template <class U> ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
-template <class U> ::boost::type_traits::no_type is_class_tester(...);
-
-template <typename T>
-struct is_class_impl
-{
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type),
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value
- >::value)
- );
-};
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
- template <class U> static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
- template <class U> static ::boost::type_traits::no_type is_class_tester(...);
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type),
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value
- >::value)
- );
-};
-
-#endif
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_function<T>::value >::value
- >::value));
-# else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value
- >::value));
-# endif
-};
-
-# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-} // namespace detail
-
-# ifdef __EDG_VERSION__
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_class,T, detail::is_class_impl<typename remove_cv<T>::type>::value)
-# else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::boost::detail::is_class_impl<T>::value)
-# endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_COMPOUND_HPP_INCLUDED
-#define BOOST_TT_IS_COMPOUND_HPP_INCLUDED
-
-#include "boost/config.hpp"
-#include "boost/type_traits/is_fundamental.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_compound_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_not<
- ::boost::is_fundamental<T>::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,::boost::detail::is_compound_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_COMPOUND_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_CONST_HPP_INCLUDED
-#define BOOST_TT_IS_CONST_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include "boost/type_traits/detail/cv_traits_impl.hpp"
-# ifdef __GNUC__
-# include <boost/type_traits/is_reference.hpp>
-# endif
-#else
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/detail/yes_no_type.hpp"
-# include "boost/type_traits/detail/false_result.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//* is a type T declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp<T*>::is_const)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false)
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const volatile,false)
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-// special case for gcc where illegally cv-qualified reference types can be
-// generated in some corner cases:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T const,!(::boost::is_reference<T>::value))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T volatile const,!(::boost::is_reference<T>::value))
-#endif
-
-#else
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-yes_type is_const_tester(const volatile void*);
-no_type is_const_tester(volatile void *);
-
-template <bool is_ref, bool array>
-struct is_const_helper
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_const_helper<false,false>
-{
- template <typename T> struct result_
- {
- static T* t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_const_tester(t))
- ));
- };
-};
-
-template <>
-struct is_const_helper<false,true>
-{
- template <typename T> struct result_
- {
- static T t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_const_tester(&t))
- ));
- };
-};
-
-template <typename T>
-struct is_const_impl
- : is_const_helper<
- is_reference<T>::value
- , is_array<T>::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const volatile,true)
-#endif
-
-} // namespace detail
-
-//* is a type T declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::is_const_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_CONST_HPP_INCLUDED
-
+++ /dev/null
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu)
-// Copyright 1999, 2000 Jaakko J\84rvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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_CONVERTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-
-#include "boost/type_traits/detail/yes_no_type.hpp"
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/is_array.hpp"
-#include "boost/type_traits/add_reference.hpp"
-#include "boost/type_traits/ice.hpp"
-#include "boost/type_traits/is_arithmetic.hpp"
-#ifndef BOOST_NO_IS_ABSTRACT
-#include "boost/type_traits/is_abstract.hpp"
-#endif
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-# include "boost/type_traits/is_void.hpp"
-#endif
-
-// should be always the last #include directive
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-// is one type convertable to another?
-//
-// there are multiple versions of the is_convertible
-// template, almost every compiler seems to require its
-// own version.
-//
-// Thanks to Andrei Alexandrescu for the original version of the
-// conversion detection technique!
-//
-
-namespace detail {
-
-// MS specific version:
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-
-// This workaround is necessary to handle when From is void
-// which is normally taken care of by the partial specialization
-// of the is_convertible typename.
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-template< typename From >
-struct does_conversion_exist
-{
- template< typename To > struct result_
- {
- static no_type BOOST_TT_DECL _m_check(...);
- static yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
- enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
- };
-};
-
-template<>
-struct does_conversion_exist<void>
-{
- template< typename To > struct result_
- {
- enum { value = ::boost::is_void<To>::value };
- };
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
- : does_conversion_exist<From>::template result_<To>
-{
-};
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x560)
-//
-// special version for Borland compilers
-// this version breaks when used for some
-// UDT conversions:
-//
-template <typename From, typename To>
-struct is_convertible_impl
-{
-#pragma option push -w-8074
- // This workaround for Borland breaks the EDG C++ frontend,
- // so we only use it for Borland.
- template <typename T> struct checker
- {
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T);
- };
-
- static From _m_from;
- static bool const value = sizeof( checker<To>::_m_check(_m_from) )
- == sizeof(::boost::type_traits::yes_type);
-#pragma option pop
-};
-
-#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// special version for gcc compiler + recent Borland versions
-// note that this does not pass UDT's through (...)
-
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
- template <typename T> any_conversion(T&);
-};
-
-template <typename T> struct checker
-{
- static boost::type_traits::no_type _m_check(any_conversion ...);
- static boost::type_traits::yes_type _m_check(T, int);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- static From _m_from;
- static bool const value = sizeof( detail::checker<To>::_m_check(_m_from, 0) )
- == sizeof(::boost::type_traits::yes_type);
-};
-
-#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \
- || defined(__IBMCPP__) || defined(__HP_aCC)
-//
-// This is *almost* an ideal world implementation as it doesn't rely
-// on undefined behaviour by passing UDT's through (...).
-// Unfortunately it doesn't quite pass all the tests for most compilers (sigh...)
-// Enable this for your compiler if is_convertible_test.cpp will compile it...
-//
-// Note we do not enable this for VC7.1, because even though it passes all the
-// type_traits tests it is known to cause problems when instantiation occurs
-// deep within the instantiation tree :-(
-//
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
- // we need this constructor to catch references to functions
- // (which can not be cv-qualified):
- template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
- static From _m_from;
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
- );
-};
-
-#elif defined(__DMC__)
-
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
- // we need this constructor to catch references to functions
- // (which can not be cv-qualified):
- template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- // Using '...' doesn't always work on Digital Mars. This version seems to.
- template <class T>
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int);
- static From _m_from;
-
- // Static constants sometime cause the conversion of _m_from to To to be
- // called. This doesn't happen with an enum.
- enum { value =
- sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type)
- };
-};
-
-#else
-
-//
-// This version seems to work pretty well for a wide spectrum of compilers,
-// however it does rely on undefined behaviour by passing UDT's through (...).
-//
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
- );
-};
-
-#endif // is_convertible_impl
-
-#if defined(__DMC__)
-// As before, a static constant sometimes causes errors on Digital Mars.
-template <typename From, typename To>
-struct is_convertible_impl
-{
- typedef typename add_reference<From>::type ref_type;
- enum { value =
- ::boost::type_traits::ice_and<
- ::boost::detail::is_convertible_basic_impl<ref_type, To>::value,
- ::boost::type_traits::ice_not<
- ::boost::is_array<To>::value
- >::value,
- >::value };
-};
-#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551
-template <typename From, typename To>
-struct is_convertible_impl
-{
- typedef typename add_reference<From>::type ref_type;
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::detail::is_convertible_basic_impl<ref_type,To>::value,
- ::boost::type_traits::ice_not<
- ::boost::is_array<To>::value
- >::value
- >::value)
- );
-};
-#endif
-
-template <bool trivial1, bool trivial2, bool abstract_target>
-struct is_convertible_impl_select
-{
- template <class From, class To>
- struct rebind
- {
- typedef is_convertible_impl<From, To> type;
- };
-};
-
-template <>
-struct is_convertible_impl_select<true, true, false>
-{
- template <class From, class To>
- struct rebind
- {
- typedef true_type type;
- };
-};
-
-template <>
-struct is_convertible_impl_select<false, false, true>
-{
- template <class From, class To>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <>
-struct is_convertible_impl_select<true, false, true>
-{
- template <class From, class To>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch_base
-{
-#ifndef __HP_aCC
- typedef is_convertible_impl_select<
- ::boost::is_arithmetic<From>::value,
- ::boost::is_arithmetic<To>::value,
-#ifndef BOOST_NO_IS_ABSTRACT
- ::boost::is_abstract<To>::value
-#else
- false
-#endif
- > selector;
-#else
- typedef is_convertible_impl_select<false, false, false> selector;
-#endif
- typedef typename selector::template rebind<From, To> isc_binder;
- typedef typename isc_binder::type type;
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch
- : public is_convertible_impl_dispatch_base<From, To>::type
-{};
-
-//
-// Now add the full and partial specialisations
-// for void types, these are common to all the
-// implementation above:
-//
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-# define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 volatile,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const volatile,value) \
- /**/
-
-# define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(trait,spec1,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 volatile,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const volatile,spec2,value) \
- /**/
-
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(is_convertible,void,void,true)
-
-# undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2
-# undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1
-
-#else
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true)
-#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,false)
-#endif
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_convertible_impl_dispatch<From,To>::value))
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_EMPTY_HPP_INCLUDED
-#define BOOST_TT_IS_EMPTY_HPP_INCLUDED
-
-#include "boost/type_traits/is_convertible.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include "boost/type_traits/remove_cv.hpp"
-# include "boost/type_traits/is_class.hpp"
-# include "boost/type_traits/add_reference.hpp"
-#else
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_pointer.hpp"
-# include "boost/type_traits/is_member_pointer.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/is_void.hpp"
-# include "boost/type_traits/detail/ice_and.hpp"
-# include "boost/type_traits/detail/ice_not.hpp"
-#endif
-
-// should be always the last #include directive
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct empty_helper_t1 : public T
-{
- empty_helper_t1(); // hh compiler bug workaround
- int i[256];
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-template <typename T, bool is_a_class = false>
-struct empty_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true>
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2))
- );
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef typename remove_cv<T>::type cvt;
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::type_traits::ice_or<
- ::boost::detail::empty_helper<cvt,::boost::is_class<T>::value>::value
- , BOOST_IS_EMPTY(cvt)
- >::value
- ));
-};
-
-#else // __BORLANDC__
-
-template <typename T, bool is_a_class, bool convertible_to_int>
-struct empty_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true, false>
-{
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)
- ));
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef typename remove_cv<T>::type cvt;
- typedef typename add_reference<T>::type r_type;
-
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::type_traits::ice_or<
- ::boost::detail::empty_helper<
- cvt
- , ::boost::is_class<T>::value
- , ::boost::is_convertible< r_type,int>::value
- >::value
- , BOOST_IS_EMPTY(cvt)
- >::value));
-};
-
-#endif // __BORLANDC__
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
- empty_helper_t1();
- int i[256];
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-template <typename T>
-struct empty_helper_base
-{
- enum { value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)) };
-};
-
-template <typename T>
-struct empty_helper_nonbase
-{
- enum { value = false };
-};
-
-template <bool base>
-struct empty_helper_chooser
-{
- template <typename T> struct result_
- {
- typedef empty_helper_nonbase<T> type;
- };
-};
-
-template <>
-struct empty_helper_chooser<true>
-{
- template <typename T> struct result_
- {
- typedef empty_helper_base<T> type;
- };
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef ::boost::detail::empty_helper_chooser<
- ::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_convertible<T,double>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_pointer<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
- ::boost::type_traits::ice_not<
- ::boost::is_convertible<T,void const volatile*>::value
- >::value
- >::value > chooser;
-
- typedef typename chooser::template result_<T> result;
- typedef typename result::type eh_type;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<eh_type::value, BOOST_IS_EMPTY(T)>::value));
-};
-
-#else
-
-template <typename T> struct is_empty_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_EMPTY(T));
-};
-
-#endif // BOOST_MSVC6_MEMBER_TEMPLATES
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// these help when the compiler has no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_empty,T,::boost::detail::is_empty_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_EMPTY_HPP_INCLUDED
-
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_ENUM_HPP_INCLUDED
-#define BOOST_TT_IS_ENUM_HPP_INCLUDED
-
-#include "boost/type_traits/add_reference.hpp"
-#include "boost/type_traits/is_arithmetic.hpp"
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/type_traits/is_convertible.hpp"
-#include "boost/type_traits/is_array.hpp"
-#ifdef __GNUC__
-#include <boost/type_traits/is_function.hpp>
-#endif
-#include "boost/type_traits/config.hpp"
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION)
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_union.hpp>
-#endif
-
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
-
-namespace detail {
-
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION)
-
-template <typename T>
-struct is_class_or_union
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_class<T>::value
- , ::boost::is_union<T>::value
- >::value));
-};
-
-#else
-
-template <typename T>
-struct is_class_or_union
-{
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) || BOOST_WORKAROUND(__BORLANDC__, <= 0x570)// we simply can't detect it this way.
- BOOST_STATIC_CONSTANT(bool, value = false);
-# else
- template <class U> static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void));
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) \
- || BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
- static ::boost::type_traits::no_type is_class_or_union_tester(...);
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type));
-# else
- template <class U>
- static ::boost::type_traits::no_type is_class_or_union_tester(...);
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(::boost::type_traits::yes_type));
-# endif
-# endif
-};
-#endif
-
-struct int_convertible
-{
- int_convertible(int);
-};
-
-// Don't evaluate convertibility to int_convertible unless the type
-// is non-arithmetic. This suppresses warnings with GCC.
-template <bool is_typename_arithmetic_or_reference = true>
-struct is_enum_helper
-{
- template <typename T> struct type
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template <>
-struct is_enum_helper<false>
-{
- template <typename T> struct type
- : ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
- {
- };
-};
-
-template <typename T> struct is_enum_impl
-{
- //typedef ::boost::add_reference<T> ar_t;
- //typedef typename ar_t::type r_type;
-
-#if defined(__GNUC__)
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
- // We MUST check for is_class_or_union on conforming compilers in
- // order to correctly deduce that noncopyable types are not enums
- // (dwa 2002/04/15)...
- BOOST_STATIC_CONSTANT(bool, selector =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_reference<T>::value
- , ::boost::is_function<T>::value
- , is_class_or_union<T>::value
- , is_array<T>::value
- >::value));
-#else
- // ...however, not checking is_class_or_union on non-conforming
- // compilers prevents a dependency recursion.
- BOOST_STATIC_CONSTANT(bool, selector =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_reference<T>::value
- , ::boost::is_function<T>::value
- , is_array<T>::value
- >::value));
-#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-#else // !defined(__GNUC__):
-
- BOOST_STATIC_CONSTANT(bool, selector =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_reference<T>::value
- , is_class_or_union<T>::value
- , is_array<T>::value
- >::value));
-
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
- typedef ::boost::detail::is_enum_helper<
- ::boost::detail::is_enum_impl<T>::selector
- > se_t;
-#else
- typedef ::boost::detail::is_enum_helper<selector> se_t;
-#endif
-
- typedef typename se_t::template type<T> helper;
- BOOST_STATIC_CONSTANT(bool, value = helper::value);
-};
-
-// these help on compilers with no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::boost::detail::is_enum_impl<T>::value)
-
-#else // __BORLANDC__
-//
-// buggy is_convertible prevents working
-// implementation of is_enum:
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
-
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_ENUM_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-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/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_floating_point,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,long double,true)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
+++ /dev/null
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com)
-//
-// 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_FUNCTION_HPP_INCLUDED
-#define BOOST_TT_IS_FUNCTION_HPP_INCLUDED
-
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/type_traits/detail/false_result.hpp"
-#include "boost/config.hpp"
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-# include "boost/type_traits/detail/is_function_ptr_helper.hpp"
-#else
-# include "boost/type_traits/detail/is_function_ptr_tester.hpp"
-# include "boost/type_traits/detail/yes_no_type.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-// is a type a function?
-// Please note that this implementation is unnecessarily complex:
-// we could just use !is_convertible<T*, const volatile void*>::value,
-// except that some compilers erroneously allow conversions from
-// function pointers to void*.
-
-namespace boost {
-namespace detail {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-template<bool is_ref = true>
-struct is_function_chooser
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_function_chooser<false>
-{
- template< typename T > struct result_
- : ::boost::type_traits::is_function_ptr_helper<T*>
- {
- };
-};
-
-template <typename T>
-struct is_function_impl
- : is_function_chooser< ::boost::is_reference<T>::value >
- ::BOOST_NESTED_TEMPLATE result_<T>
-{
-};
-
-#else
-
-template <typename T>
-struct is_function_impl
-{
- static T* t;
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t))
- == sizeof(::boost::type_traits::yes_type)
- );
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template <typename T>
-struct is_function_impl<T&> : public false_type
-{};
-#endif
-
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_FUNDAMENTAL_HPP_INCLUDED
-#define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
-
-#include "boost/type_traits/is_arithmetic.hpp"
-#include "boost/type_traits/is_void.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 <typename T>
-struct is_fundamental_impl
- : ::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_void<T>::value
- >
-{
-};
-
-} // namespace detail
-
-//* is a type T a fundamental type described in the standard (3.9.1)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,::boost::detail::is_fundamental_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_INTEGRAL_HPP_INCLUDED
-#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3)
-// as an extention we include long long, as this is likely to be added to the
-// standard at a later date
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long,true)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed long,true)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-// If the following line fails to compile and you're using the Intel
-// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
-// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
-#endif
-
-#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \
- || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
- || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200))
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true)
-#ifdef __BORLANDC__
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
-#endif
-#endif
-
-# if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::ulong_long_type,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/detail/workaround.hpp"
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
- //
- // Note: we use the "workaround" version for MSVC because it works for
- // __stdcall etc function types, where as the partial specialisation
- // version does not do so.
- //
-# include "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"
-#else
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/detail/yes_no_type.hpp"
-# include "boost/type_traits/detail/false_result.hpp"
-# include "boost/type_traits/detail/ice_or.hpp"
-# include "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_member_function_pointer
- , T
- , ::boost::type_traits::is_mem_fun_pointer_impl<T>::value
- )
-
-#else
-
-namespace detail {
-
-#ifndef __BORLANDC__
-
-template <bool>
-struct is_mem_fun_pointer_select
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_mem_fun_pointer_select<false>
-{
- template <typename T> struct result_
- {
- static T* make_t;
- typedef result_<T> self_type;
-
- BOOST_STATIC_CONSTANT(
- bool, value = (
- 1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
- ));
- };
-};
-
-template <typename T>
-struct is_member_function_pointer_impl
- : is_mem_fun_pointer_select<
- ::boost::type_traits::ice_or<
- ::boost::is_reference<T>::value
- , ::boost::is_array<T>::value
- >::value
- >::template result_<T>
-{
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct is_member_function_pointer_impl<T&> : public false_type{};
-#endif
-
-#else // Borland C++
-
-template <typename T>
-struct is_member_function_pointer_impl
-{
- static T* m_t;
- BOOST_STATIC_CONSTANT(
- bool, value =
- (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) );
-};
-
-template <typename T>
-struct is_member_function_pointer_impl<T&>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#endif
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::boost::detail::is_member_function_pointer_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/is_member_pointer.hpp"
-#include "boost/type_traits/is_member_function_pointer.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail{
-
-template <typename T>
-struct is_member_object_pointer_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (::boost::type_traits::ice_and<
- ::boost::is_member_pointer<T>::value,
- ::boost::type_traits::ice_not<
- ::boost::is_member_function_pointer<T>::value
- >::value
- >::value ));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_object_pointer,T,::boost::detail::is_member_object_pointer_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/detail/workaround.hpp"
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# include "boost/type_traits/is_member_function_pointer.hpp"
-#else
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp"
-# include "boost/type_traits/detail/yes_no_type.hpp"
-# include "boost/type_traits/detail/false_result.hpp"
-# include "boost/type_traits/detail/ice_or.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
-
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::is_member_function_pointer<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
-
-#else // no partial template specialization
-
-namespace detail {
-
-template <typename R, typename T>
-::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*);
-::boost::type_traits::no_type BOOST_TT_DECL is_member_pointer_tester(...);
-
-template <bool>
-struct is_member_pointer_select
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_member_pointer_select<false>
-{
- template <typename T> struct result_
- {
- static T* make_t();
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- (1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(make_t()))),
- (1 == sizeof(is_member_pointer_tester(make_t())))
- >::value) );
- };
-};
-
-template <typename T>
-struct is_member_pointer_impl
- : is_member_pointer_select<
- ::boost::type_traits::ice_or<
- ::boost::is_reference<T>::value
- , ::boost::is_array<T>::value
- >::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::detail::is_member_pointer_impl<T>::value)
-
-#endif // __BORLANDC__
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_OBJECT_HPP_INCLUDED
-#define BOOST_TT_IS_OBJECT_HPP_INCLUDED
-
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/type_traits/is_void.hpp"
-#include "boost/type_traits/is_function.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_object_impl
-{
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_function<T>::value>::value
- >::value));
-#else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value
- >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_object,T,::boost::detail::is_object_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_POD_HPP_INCLUDED
-#define BOOST_TT_IS_POD_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/is_void.hpp"
-#include "boost/type_traits/is_scalar.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-// forward declaration, needed by 'is_pod_array_helper' template below
-template< typename T > struct is_POD;
-
-namespace detail {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template <typename T> struct is_pod_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_scalar<T>::value,
- ::boost::is_void<T>::value,
- BOOST_IS_POD(T)
- >::value));
-};
-
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <typename T, std::size_t sz>
-struct is_pod_impl<T[sz]>
- : is_pod_impl<T>
-{
-};
-#endif
-
-#else
-
-template <bool is_array = false>
-struct is_pod_helper
-{
- template <typename T> struct result_
- {
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_scalar<T>::value,
- ::boost::is_void<T>::value,
- BOOST_IS_POD(T)
- >::value));
- };
-};
-
-template <bool b>
-struct bool_to_yes_no_type
-{
- typedef ::boost::type_traits::no_type type;
-};
-
-template <>
-struct bool_to_yes_no_type<true>
-{
- typedef ::boost::type_traits::yes_type type;
-};
-
-template <typename ArrayType>
-struct is_pod_array_helper
-{
- enum { is_pod = ::boost::is_POD<ArrayType>::value }; // MSVC workaround
- typedef typename bool_to_yes_no_type<is_pod>::type type;
- type instance() const;
-};
-
-template <typename T>
-is_pod_array_helper<T> is_POD_array(T*);
-
-template <>
-struct is_pod_helper<true>
-{
- template <typename T> struct result_
- {
- static T& help();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(is_POD_array(help()).instance()) == sizeof(::boost::type_traits::yes_type)
- );
- };
-};
-
-
-template <typename T> struct is_pod_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::detail::is_pod_helper<
- ::boost::is_array<T>::value
- >::template result_<T>::value
- )
- );
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// the following help compilers without partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true)
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::detail::is_pod_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_POD_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_POINTER_HPP_INCLUDED
-
-#include "boost/type_traits/is_member_pointer.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/detail/ice_not.hpp"
-#include "boost/type_traits/config.hpp"
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/detail/is_function_ptr_tester.hpp"
-# include "boost/type_traits/detail/false_result.hpp"
-# include "boost/type_traits/detail/ice_or.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template< typename T > struct is_pointer_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-# define TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(helper,sp,result) \
-template< typename T > struct helper<sp> \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = result); \
-}; \
-/**/
-
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T*,true)
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T* const,true)
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T* volatile,true)
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T* const volatile,true)
-
-# undef TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC
-
-template< typename T >
-struct is_pointer_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::detail::is_pointer_helper<T>::value
- , ::boost::type_traits::ice_not<
- ::boost::is_member_pointer<T>::value
- >::value
- >::value)
- );
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
-
-#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const volatile,false)
-#endif
-
-#else // no partial template specialization
-
-namespace detail {
-
-struct pointer_helper
-{
- pointer_helper(const volatile void*);
-};
-
-yes_type BOOST_TT_DECL is_pointer_tester(pointer_helper);
-no_type BOOST_TT_DECL is_pointer_tester(...);
-
-template <bool>
-struct is_pointer_select
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_pointer_select<false>
-{
- template <typename T> struct result_
- {
- static T& make_t();
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- (1 == sizeof(is_pointer_tester(make_t()))),
- (1 == sizeof(type_traits::is_function_ptr_tester(make_t())))
- >::value));
- };
-};
-
-template <typename T>
-struct is_pointer_impl
- : is_pointer_select<
- ::boost::type_traits::ice_or<
- ::boost::is_reference<T>::value
- , ::boost::is_array<T>::value
- >::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_POINTER_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock 2000.
-// 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_POLYMORPHIC_HPP
-#define BOOST_TT_IS_POLYMORPHIC_HPP
-
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-#include <boost/detail/workaround.hpp>
-
-namespace boost{
-namespace detail{
-
-template <class T>
-struct is_polymorphic_imp1
-{
-# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always.
- typedef char d1, (&d2)[2];
-# else
- typedef typename remove_cv<T>::type ncvT;
- struct d1 : public ncvT
- {
- d1();
-# if !defined(__GNUC__) // this raises warnings with some classes, and buys nothing with GCC
- ~d1()throw();
-# endif
- char padding[256];
- };
- struct d2 : public ncvT
- {
- d2();
- virtual ~d2()throw();
-# if !defined(BOOST_MSVC) && !defined(__ICL)
- // for some reason this messes up VC++ when T has virtual bases,
- // probably likewise for compilers that use the same ABI:
- struct unique{};
- virtual void unique_name_to_boost5487629(unique*);
-# endif
- char padding[256];
- };
-# endif
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
-};
-
-template <class T>
-struct is_polymorphic_imp2
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool is_class>
-struct is_polymorphic_selector
-{
- template <class T>
- struct rebind
- {
- typedef is_polymorphic_imp2<T> type;
- };
-};
-
-template <>
-struct is_polymorphic_selector<true>
-{
- template <class T>
- struct rebind
- {
- typedef is_polymorphic_imp1<T> type;
- };
-};
-
-template <class T>
-struct is_polymorphic_imp
-{
- typedef is_polymorphic_selector< ::boost::is_class<T>::value> selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type imp_type;
- BOOST_STATIC_CONSTANT(bool, value = imp_type::value);
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::boost::detail::is_polymorphic_imp<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include "boost/type_traits/detail/yes_no_type.hpp"
-# include "boost/type_traits/detail/wrap.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T&,true)
-
-#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const volatile,true)
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-// these allow us to work around illegally cv-qualified reference
-// types.
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const ,::boost::is_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T volatile ,::boost::is_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const volatile ,::boost::is_reference<T>::value)
-// However, the above specializations confuse gcc 2.96 unless we also
-// supply these specializations for array types
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,volatile T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const volatile T[N],false)
-#endif
-
-#else
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4181)
-#endif
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-using ::boost::type_traits::wrap;
-
-template <class T> T&(* is_reference_helper1(wrap<T>) )(wrap<T>);
-char is_reference_helper1(...);
-
-template <class T> no_type is_reference_helper2(T&(*)(wrap<T>));
-yes_type is_reference_helper2(...);
-
-template <typename T>
-struct is_reference_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(
- ::boost::detail::is_reference_helper2(
- ::boost::detail::is_reference_helper1(::boost::type_traits::wrap<T>()))) == 1
- );
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl<T>::value)
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_SAME_HPP_INCLUDED
-#define BOOST_TT_IS_SAME_HPP_INCLUDED
-
-#include "boost/type_traits/config.hpp"
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include "boost/type_traits/detail/yes_no_type.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/type_traits/is_reference.hpp"
-#endif
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-// without this, Borland's compiler gives the wrong answer for
-// references to arrays:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-#ifdef BOOST_MSVC
-// the following VC6 specific implementation is *NOT* legal
-// C++, but has the advantage that it works for incomplete
-// types.
-
-template< typename T1 >
-struct is_same_part_1
-{
- template<typename T2> struct part_2 { enum { value = false }; };
- template<> struct part_2<T1> { enum { value = true }; };
-};
-
-template< typename T1, typename T2 >
-struct is_same_impl
-{
- enum { value = detail::is_same_part_1<T1>::template part_2<T2>::value };
-};
-
-#else // generic "no-partial-specialization" version
-
-template <typename T>
-::boost::type_traits::yes_type
-BOOST_TT_DECL is_same_tester(T*, T*);
-
-::boost::type_traits::no_type
-BOOST_TT_DECL is_same_tester(...);
-
-template <typename T, typename U>
-struct is_same_impl
-{
- static T t;
- static U u;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- (sizeof(type_traits::yes_type) == sizeof(detail::is_same_tester(&t,&u))),
- (::boost::is_reference<T>::value == ::boost::is_reference<U>::value),
- (sizeof(T) == sizeof(U))
- >::value));
-};
-
-#endif // BOOST_MSVC
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::boost::detail::is_same_impl<T,U>::value))
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_SAME_HPP_INCLUDED
-
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_SCALAR_HPP_INCLUDED
-#define BOOST_TT_IS_SCALAR_HPP_INCLUDED
-
-#include "boost/type_traits/is_arithmetic.hpp"
-#include "boost/type_traits/is_enum.hpp"
-#include "boost/type_traits/is_pointer.hpp"
-#include "boost/type_traits/is_member_pointer.hpp"
-#include "boost/type_traits/detail/ice_or.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_scalar_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value,
- ::boost::is_enum<T>::value,
- ::boost::is_pointer<T>::value,
- ::boost::is_member_pointer<T>::value
- >::value));
-};
-
-// these specializations are only really needed for compilers
-// without partial specialization support:
-template <> struct is_scalar_impl<void>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-template <> struct is_scalar_impl<void const>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void const volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_scalar,T,::boost::detail::is_scalar_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_SIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_SIGNED_HPP_INCLUDED
-
-#include "boost/type_traits/is_integral.hpp"
-#include "boost/type_traits/is_enum.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{
-
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238)
-
-template <class T>
-struct is_signed_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = (static_cast<T>(-1) < 0));
-};
-
-template <bool integral_type>
-struct is_signed_select_helper
-{
- template <class T>
- struct rebind
- {
- typedef is_signed_helper<T> type;
- };
-};
-
-template <>
-struct is_signed_select_helper<false>
-{
- template <class T>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <class T>
-struct is_signed_imp
-{
- typedef is_signed_select_helper<
- ::boost::type_traits::ice_or<
- ::boost::is_integral<T>::value,
- ::boost::is_enum<T>::value>::value
- > selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type type;
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200)
- BOOST_STATIC_CONSTANT(bool, value = is_signed_imp<T>::type::value);
-#else
- BOOST_STATIC_CONSTANT(bool, value = type::value);
-#endif
-};
-
-#else
-
-template <class T> struct is_signed_imp : public false_type{};
-template <> struct is_signed_imp<signed char> : public true_type{};
-template <> struct is_signed_imp<const signed char> : public true_type{};
-template <> struct is_signed_imp<volatile signed char> : public true_type{};
-template <> struct is_signed_imp<const volatile signed char> : public true_type{};
-template <> struct is_signed_imp<short> : public true_type{};
-template <> struct is_signed_imp<const short> : public true_type{};
-template <> struct is_signed_imp<volatile short> : public true_type{};
-template <> struct is_signed_imp<const volatile short> : public true_type{};
-template <> struct is_signed_imp<int> : public true_type{};
-template <> struct is_signed_imp<const int> : public true_type{};
-template <> struct is_signed_imp<volatile int> : public true_type{};
-template <> struct is_signed_imp<const volatile int> : public true_type{};
-template <> struct is_signed_imp<long> : public true_type{};
-template <> struct is_signed_imp<const long> : public true_type{};
-template <> struct is_signed_imp<volatile long> : public true_type{};
-template <> struct is_signed_imp<const volatile long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
-template <> struct is_signed_imp<long long> : public true_type{};
-template <> struct is_signed_imp<const long long> : public true_type{};
-template <> struct is_signed_imp<volatile long long> : public true_type{};
-template <> struct is_signed_imp<const volatile long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN != 0)
-template <> struct is_signed_imp<char> : public true_type{};
-template <> struct is_signed_imp<const char> : public true_type{};
-template <> struct is_signed_imp<volatile char> : public true_type{};
-template <> struct is_signed_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN != 0)
-template <> struct is_signed_imp<wchar_t> : public true_type{};
-template <> struct is_signed_imp<const wchar_t> : public true_type{};
-template <> struct is_signed_imp<volatile wchar_t> : public true_type{};
-template <> struct is_signed_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,::boost::detail::is_signed_imp<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_STATELESS_HPP_INCLUDED
-#define BOOST_TT_IS_STATELESS_HPP_INCLUDED
-
-#include "boost/type_traits/has_trivial_constructor.hpp"
-#include "boost/type_traits/has_trivial_copy.hpp"
-#include "boost/type_traits/has_trivial_destructor.hpp"
-#include "boost/type_traits/is_class.hpp"
-#include "boost/type_traits/is_empty.hpp"
-#include "boost/type_traits/detail/ice_and.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_stateless_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::has_trivial_constructor<T>::value,
- ::boost::has_trivial_copy<T>::value,
- ::boost::has_trivial_destructor<T>::value,
- ::boost::is_class<T>::value,
- ::boost::is_empty<T>::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_stateless,T,::boost::detail::is_stateless_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_STATELESS_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_UNION_HPP_INCLUDED
-#define BOOST_TT_IS_UNION_HPP_INCLUDED
-
-#include "boost/type_traits/remove_cv.hpp"
-#include "boost/type_traits/config.hpp"
-#include "boost/type_traits/intrinsics.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail {
-#ifndef __GNUC__
-template <typename T> struct is_union_impl
-{
- typedef typename remove_cv<T>::type cvt;
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt));
-};
-#else
-//
-// using remove_cv here generates a whole load of needless
-// warnings with gcc, since it doesn't do any good with gcc
-// in any case (at least at present), just remove it:
-//
-template <typename T> struct is_union_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T));
-};
-#endif
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::boost::detail::is_union_impl<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_UNION_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-
-#include "boost/type_traits/is_integral.hpp"
-#include "boost/type_traits/is_enum.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{
-
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238)
-
-template <class T>
-struct is_ununsigned_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = (static_cast<T>(-1) > 0));
-};
-
-template <bool integral_type>
-struct is_ununsigned_select_helper
-{
- template <class T>
- struct rebind
- {
- typedef is_ununsigned_helper<T> type;
- };
-};
-
-template <>
-struct is_ununsigned_select_helper<false>
-{
- template <class T>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <class T>
-struct is_unsigned_imp
-{
- typedef is_ununsigned_select_helper<
- ::boost::type_traits::ice_or<
- ::boost::is_integral<T>::value,
- ::boost::is_enum<T>::value>::value
- > selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type type;
- BOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#else
-
-template <class T> struct is_unsigned_imp : public false_type{};
-template <> struct is_unsigned_imp<unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
-template <> struct is_unsigned_imp<unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN == 0)
-template <> struct is_unsigned_imp<char> : public true_type{};
-template <> struct is_unsigned_imp<const char> : public true_type{};
-template <> struct is_unsigned_imp<volatile char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN == 0)
-template <> struct is_unsigned_imp<wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<const wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<volatile wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,::boost::detail::is_unsigned_imp<T>::value)
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_VOID_HPP_INCLUDED
-#define BOOST_TT_IS_VOID_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-//* is a type T void - is_void<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true)
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true)
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_VOID_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-
-#include "boost/config.hpp"
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include "boost/type_traits/detail/cv_traits_impl.hpp"
-#else
-# include "boost/type_traits/is_reference.hpp"
-# include "boost/type_traits/is_array.hpp"
-# include "boost/type_traits/detail/yes_no_type.hpp"
-# include "boost/type_traits/detail/false_result.hpp"
-#endif
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp<T*>::is_volatile)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false)
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const volatile,false)
-#endif
-
-#else
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-yes_type is_volatile_tester(void const volatile*);
-no_type is_volatile_tester(void const*);
-
-template <bool is_ref, bool array>
-struct is_volatile_helper
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_volatile_helper<false,false>
-{
- template <typename T> struct result_
- {
- static T* t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(t))
- ));
- };
-};
-
-template <>
-struct is_volatile_helper<false,true>
-{
- template <typename T> struct result_
- {
- static T t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(&t))
- ));
- };
-};
-
-template <typename T>
-struct is_volatile_impl
- : is_volatile_helper<
- is_reference<T>::value
- , is_array<T>::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const volatile,true)
-#endif
-
-} // namespace detail
-
-//* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::is_volatile_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_RANK_HPP_INCLUDED
-#define BOOST_TT_RANK_HPP_INCLUDED
-
-// should be the last #include
-#include "boost/type_traits/detail/size_t_trait_def.hpp"
-
-namespace boost {
-
-namespace detail{
-
-template <class T, std::size_t N>
-struct rank_imp
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = N);
-};
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T const[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T const volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-template <class T, std::size_t N>
-struct rank_imp<T[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T const[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T const volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-#endif
-#endif
-}
-
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,(::boost::detail::rank_imp<T,0>::value))
-
-} // namespace boost
-
-#include "boost/type_traits/detail/size_t_trait_undef.hpp"
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-
-#include "boost/config.hpp"
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_all_extents,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T[N],typename boost::remove_all_extents<T>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const[N],typename boost::remove_all_extents<T const>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T volatile[N],typename boost::remove_all_extents<T volatile>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const volatile[N],typename boost::remove_all_extents<T const volatile>::type type)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T[],typename boost::remove_all_extents<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const[],typename boost::remove_all_extents<T const>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T volatile[],typename boost::remove_all_extents<T volatile>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const volatile[],typename boost::remove_all_extents<T const volatile>::type)
-#endif
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_REMOVE_BOUNDS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
-
-#include "boost/config.hpp"
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile)
-#endif
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_REMOVE_CONST_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CONST_HPP_INCLUDED
-
-#include "boost/type_traits/is_volatile.hpp"
-#include "boost/type_traits/broken_compiler_spec.hpp"
-#include "boost/type_traits/detail/cv_traits_impl.hpp"
-#include "boost/config.hpp"
-
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_vol>
-struct remove_const_helper
-{
- typedef T type;
-};
-
-template <typename T>
-struct remove_const_helper<T, true>
-{
- typedef T volatile type;
-};
-
-
-template <typename T>
-struct remove_const_impl
-{
- typedef typename remove_const_helper<
- typename cv_traits_imp<T*>::unqualified_type
- , ::boost::is_volatile<T>::value
- >::type type;
-};
-
-} // namespace detail
-
-// * convert a type T to non-const type - remove_const<T>
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename detail::remove_const_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N])
-#endif
-
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename detail::remove_const_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_REMOVE_CV_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CV_HPP_INCLUDED
-
-#include "boost/type_traits/broken_compiler_spec.hpp"
-#include "boost/type_traits/detail/cv_traits_impl.hpp"
-#include "boost/config.hpp"
-
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// convert a type T to a non-cv-qualified type - remove_cv<T>
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename detail::cv_traits_imp<T*>::unqualified_type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N])
-#endif
-
-#else
-
-namespace detail {
-template <typename T>
-struct remove_cv_impl
-{
- typedef typename remove_volatile_impl<
- typename remove_const_impl<T>::type
- >::type type;
-};
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename detail::remove_cv_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-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/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-#define BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-
-#include "boost/config.hpp"
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_extent,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const volatile[],T const volatile)
-#endif
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_REMOVE_POINTER_HPP_INCLUDED
-#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-
-#include "boost/type_traits/broken_compiler_spec.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const volatile,T)
-
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename detail::remove_pointer_impl<T>::type)
-
-#endif
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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_REMOVE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
-
-#include "boost/type_traits/broken_compiler_spec.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T)
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T)
-#endif
-
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename detail::remove_reference_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
+++ /dev/null
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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_REMOVE_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
-
-#include "boost/type_traits/is_const.hpp"
-#include "boost/type_traits/broken_compiler_spec.hpp"
-#include "boost/type_traits/detail/cv_traits_impl.hpp"
-#include "boost/config.hpp"
-
-#include <cstddef>
-
-// should be the last #include
-#include "boost/type_traits/detail/type_trait_def.hpp"
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_const>
-struct remove_volatile_helper
-{
- typedef T type;
-};
-
-template <typename T>
-struct remove_volatile_helper<T,true>
-{
- typedef T const type;
-};
-
-template <typename T>
-struct remove_volatile_impl
-{
- typedef typename remove_volatile_helper<
- typename cv_traits_imp<T*>::unqualified_type
- , ::boost::is_const<T>::value
- >::type type;
-};
-
-} // namespace detail
-
-// * convert a type T to a non-volatile type - remove_volatile<T>
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename detail::remove_volatile_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_volatile,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N])
-#endif
-
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename detail::remove_volatile_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include "boost/type_traits/detail/type_trait_undef.hpp"
-
-#endif // BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// 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.
-//
-// defines is_same:
-
-#ifndef BOOST_TT_SAME_TRAITS_HPP_INCLUDED
-#define BOOST_TT_SAME_TRAITS_HPP_INCLUDED
-
-#include "boost/type_traits/is_same.hpp"
-
-#endif // BOOST_TT_SAME_TRAITS_HPP_INCLUDED
+++ /dev/null
-// (C) Copyright John Maddock 2000.
-// 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_TYPE_WITH_ALIGNMENT_INCLUDED
-#define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-
-#include "boost/mpl/if.hpp"
-#include "boost/preprocessor/list/for_each_i.hpp"
-#include "boost/preprocessor/tuple/to_list.hpp"
-#include "boost/preprocessor/cat.hpp"
-#include "boost/preprocessor/list/transform.hpp"
-#include "boost/preprocessor/list/append.hpp"
-#include "boost/type_traits/alignment_of.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/static_assert.hpp"
-#include "boost/config.hpp"
-
-// should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-#include <cstddef>
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4121) // alignment is sensitive to packing
-#endif
-
-namespace boost {
-
-#ifndef __BORLANDC__
-
-namespace detail {
-
-class alignment_dummy;
-typedef void (*function_ptr)();
-typedef int (alignment_dummy::*member_ptr);
-typedef int (alignment_dummy::*member_function_ptr)();
-
-#ifdef BOOST_HAS_LONG_LONG
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
- 12, ( \
- char, short, int, long, ::boost::long_long_type, float, double, long double \
- , void*, function_ptr, member_ptr, member_function_ptr))
-#else
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
- 11, ( \
- char, short, int, long, float, double, long double \
- , void*, function_ptr, member_ptr, member_function_ptr))
-#endif
-
-#define BOOST_TT_HAS_ONE_T(D,Data,T) boost::detail::has_one_T< T >
-
-#define BOOST_TT_ALIGNMENT_STRUCT_TYPES \
- BOOST_PP_LIST_TRANSFORM(BOOST_TT_HAS_ONE_T, \
- X, \
- BOOST_TT_ALIGNMENT_BASE_TYPES)
-
-#define BOOST_TT_ALIGNMENT_TYPES \
- BOOST_PP_LIST_APPEND(BOOST_TT_ALIGNMENT_BASE_TYPES, \
- BOOST_TT_ALIGNMENT_STRUCT_TYPES)
-
-//
-// lower_alignment_helper --
-//
-// This template gets instantiated a lot, so use partial
-// specialization when available to reduce the compiler burden.
-//
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <bool found = true>
-struct lower_alignment_helper_impl
-{
- template <std::size_t, class>
- struct apply
- {
- typedef char type;
- enum { value = true };
- };
-};
-
-template <>
-struct lower_alignment_helper_impl<false>
-{
- template <std::size_t target, class TestType>
- struct apply
- : mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
- {
- enum { value = (alignment_of<TestType>::value == target) };
- };
-};
-
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
- : lower_alignment_helper_impl<found>::template apply<target,TestType>
-{
-};
-#else
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-{
- typedef char type;
- enum { value = true };
-};
-
-template <std::size_t target, class TestType>
-struct lower_alignment_helper<false,target,TestType>
-{
- enum { value = (alignment_of<TestType>::value == target) };
- typedef typename mpl::if_c<value, TestType, char>::type type;
-};
-#endif
-
-#define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T) \
- typename lower_alignment_helper< \
- BOOST_PP_CAT(found,I),target,T \
- >::type BOOST_PP_CAT(t,I); \
- enum { \
- BOOST_PP_CAT(found,BOOST_PP_INC(I)) \
- = lower_alignment_helper<BOOST_PP_CAT(found,I),target,T >::value \
- };
-
-#define BOOST_TT_CHOOSE_T(R,P,I,T) T BOOST_PP_CAT(t,I);
-
-template <typename T>
-struct has_one_T
-{
- T data;
-};
-
-template <std::size_t target>
-union lower_alignment
-{
- enum { found0 = false };
-
- BOOST_PP_LIST_FOR_EACH_I(
- BOOST_TT_CHOOSE_MIN_ALIGNMENT
- , ignored
- , BOOST_TT_ALIGNMENT_TYPES
- )
-};
-
-union max_align
-{
- BOOST_PP_LIST_FOR_EACH_I(
- BOOST_TT_CHOOSE_T
- , ignored
- , BOOST_TT_ALIGNMENT_TYPES
- )
-};
-
-#undef BOOST_TT_ALIGNMENT_BASE_TYPES
-#undef BOOST_TT_HAS_ONE_T
-#undef BOOST_TT_ALIGNMENT_STRUCT_TYPES
-#undef BOOST_TT_ALIGNMENT_TYPES
-#undef BOOST_TT_CHOOSE_MIN_ALIGNMENT
-#undef BOOST_TT_CHOOSE_T
-
-template<std::size_t TAlign, std::size_t Align>
-struct is_aligned
-{
- BOOST_STATIC_CONSTANT(bool,
- value = (TAlign >= Align) & (TAlign % Align == 0)
- );
-};
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::max_align,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<1> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<2> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<4> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<8> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<10> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<16> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<32> ,true)
-#endif
-
-} // namespace detail
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template<std::size_t Align>
-struct is_pod< ::boost::detail::lower_alignment<Align> >
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = true);
-};
-#endif
-
-// This alignment method originally due to Brian Parker, implemented by David
-// Abrahams, and then ported here by Doug Gregor.
-template <std::size_t Align>
-class type_with_alignment
-{
- typedef detail::lower_alignment<Align> t1;
- typedef typename mpl::if_c<
- ::boost::detail::is_aligned< ::boost::alignment_of<t1>::value,Align >::value
- , t1
- , detail::max_align
- >::type align_t;
-
- BOOST_STATIC_CONSTANT(std::size_t, found = alignment_of<align_t>::value);
-
- BOOST_STATIC_ASSERT(found >= Align);
- BOOST_STATIC_ASSERT(found % Align == 0);
-
- public:
- typedef align_t type;
-};
-
-#if defined(__GNUC__)
-namespace align {
-struct __attribute__((__aligned__(2))) a2 {};
-struct __attribute__((__aligned__(4))) a4 {};
-struct __attribute__((__aligned__(8))) a8 {};
-struct __attribute__((__aligned__(16))) a16 {};
-struct __attribute__((__aligned__(32))) a32 {};
-}
-
-template<> class type_with_alignment<1> { public: typedef char type; };
-template<> class type_with_alignment<2> { public: typedef align::a2 type; };
-template<> class type_with_alignment<4> { public: typedef align::a4 type; };
-template<> class type_with_alignment<8> { public: typedef align::a8 type; };
-template<> class type_with_alignment<16> { public: typedef align::a16 type; };
-template<> class type_with_alignment<32> { public: typedef align::a32 type; };
-
-namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
-}
-#endif
-
-#else
-
-//
-// Borland specific version, we have this for two reasons:
-// 1) The version above doesn't always compile (with the new test cases for example)
-// 2) Because of Borlands #pragma option we can create types with alignments that are
-// greater that the largest aligned builtin type.
-
-namespace align{
-#pragma option push -a16
-struct a2{ short s; };
-struct a4{ int s; };
-struct a8{ double s; };
-struct a16{ long double s; };
-#pragma option pop
-}
-
-namespace detail {
-
-typedef ::boost::align::a16 max_align;
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-}
-
-template <std::size_t N> struct type_with_alignment
-{
- // We should never get to here, but if we do use the maximally
- // aligned type:
- // BOOST_STATIC_ASSERT(0);
- typedef align::a16 type;
-};
-template <> struct type_with_alignment<1>{ typedef char type; };
-template <> struct type_with_alignment<2>{ typedef align::a2 type; };
-template <> struct type_with_alignment<4>{ typedef align::a4 type; };
-template <> struct type_with_alignment<8>{ typedef align::a8 type; };
-template <> struct type_with_alignment<16>{ typedef align::a16 type; };
-
-#endif
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-
-
+++ /dev/null
-// Boost utility.hpp header file -------------------------------------------//
-
-// Copyright 1999-2003 Aleksey Gurtovoy. Use, modification, and distribution are
-// subject to the Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
-
-// See <http://www.boost.org/libs/utility/> for the library's home page.
-
-#ifndef BOOST_UTILITY_HPP
-#define BOOST_UTILITY_HPP
-
-#include <boost/utility/addressof.hpp>
-#include <boost/utility/base_from_member.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/checked_delete.hpp>
-#include <boost/next_prior.hpp>
-#include <boost/noncopyable.hpp>
-
-#endif // BOOST_UTILITY_HPP
+++ /dev/null
-// Copyright (C) 2002 Brad King (brad.king@kitware.com)
-// Douglas Gregor (gregod@cs.rpi.edu)
-// 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)
-
-// For more information, see http://www.boost.org
-
-#ifndef BOOST_UTILITY_ADDRESSOF_HPP
-# define BOOST_UTILITY_ADDRESSOF_HPP
-
-# include <boost/config.hpp>
-# include <boost/detail/workaround.hpp>
-
-namespace boost {
-
-// Do not make addressof() inline. Breaks MSVC 7. (Peter Dimov)
-
-// VC7 strips const from nested classes unless we add indirection here
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-
-template<class T> struct _addp
-{
- typedef T * type;
-};
-
-template <typename T> typename _addp<T>::type
-
-# else
-template <typename T> T*
-# endif
-addressof(T& v)
-{
- return reinterpret_cast<T*>(
- &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
-}
-
-// Borland doesn't like casting an array reference to a char reference
-// but these overloads work around the problem.
-# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-template<typename T,std::size_t N>
-T (*addressof(T (&t)[N]))[N]
-{
- return reinterpret_cast<T(*)[N]>(&t);
-}
-
-template<typename T,std::size_t N>
-const T (*addressof(const T (&t)[N]))[N]
-{
- return reinterpret_cast<const T(*)[N]>(&t);
-}
-# endif
-
-}
-
-#endif // BOOST_UTILITY_ADDRESSOF_HPP
+++ /dev/null
-// Copyright (C) 2003, 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_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-#define BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-
-#include<functional>
-
-namespace boost {
-
-// template<class OP> bool equal_pointees(OP const& x, OP const& y);
-// template<class OP> struct equal_pointees_t;
-//
-// Being OP a model of OptionalPointee (either a pointer or an optional):
-//
-// If both x and y have valid pointees, returns the result of (*x == *y)
-// If only one has a valid pointee, returns false.
-// If none have valid pointees, returns true.
-// No-throw
-template<class OptionalPointee>
-inline
-bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
-{
- return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
-}
-
-template<class OptionalPointee>
-struct equal_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
-{
- bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
- { return equal_pointees(x,y) ; }
-} ;
-
-// template<class OP> bool less_pointees(OP const& x, OP const& y);
-// template<class OP> struct less_pointees_t;
-//
-// Being OP a model of OptionalPointee (either a pointer or an optional):
-//
-// If y has not a valid pointee, returns false.
-// ElseIf x has not a valid pointee, returns true.
-// ElseIf both x and y have valid pointees, returns the result of (*x < *y)
-// No-throw
-template<class OptionalPointee>
-inline
-bool less_pointees ( OptionalPointee const& x, OptionalPointee const& y )
-{
- return !y ? false : ( !x ? true : (*x) < (*y) ) ;
-}
-
-template<class OptionalPointee>
-struct less_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
-{
- bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
- { return less_pointees(x,y) ; }
-} ;
-
-} // namespace boost
-
-#endif
-
+++ /dev/null
-//-----------------------------------------------------------------------------
-// boost variant.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman, Itay Maman
-//
-// Distributed under the 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_VARIANT_HPP
-#define BOOST_VARIANT_HPP
-
-// variant "main"
-#include "boost/variant/variant.hpp"
-#include "boost/variant/recursive_variant.hpp"
-#include "boost/variant/recursive_wrapper.hpp"
-
-// common applications
-#include "boost/variant/get.hpp"
-#include "boost/variant/apply_visitor.hpp"
-#include "boost/variant/static_visitor.hpp"
-#include "boost/variant/visitor_ptr.hpp"
-
-#endif // BOOST_VARIANT_HPP
+++ /dev/null
-// Copyright (C) Vladimir Prus 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/libs/graph/vector_property_map.html for
-// documentation.
-//
-
-#ifndef VECTOR_PROPERTY_MAP_HPP_VP_2003_03_04
-#define VECTOR_PROPERTY_MAP_HPP_VP_2003_03_04
-
-#include <boost/property_map.hpp>
-#include <boost/shared_ptr.hpp>
-#include <vector>
-
-namespace boost {
- template<typename T, typename IndexMap = identity_property_map>
- class vector_property_map
- : public boost::put_get_helper<
- typename std::iterator_traits<
- typename std::vector<T>::iterator >::reference,
- vector_property_map<T, IndexMap> >
- {
- public:
- typedef typename property_traits<IndexMap>::key_type key_type;
- typedef T value_type;
- typedef typename std::iterator_traits<
- typename std::vector<T>::iterator >::reference reference;
- typedef boost::lvalue_property_map_tag category;
-
- vector_property_map(const IndexMap& index = IndexMap())
- : store(new std::vector<T>()), index(index)
- {}
-
- vector_property_map(unsigned initial_size,
- const IndexMap& index = IndexMap())
- : store(new std::vector<T>(initial_size)), index(index)
- {}
-
- typename std::vector<T>::iterator storage_begin()
- {
- return store->begin();
- }
-
- typename std::vector<T>::iterator storage_end()
- {
- return store->end();
- }
-
- typename std::vector<T>::const_iterator storage_begin() const
- {
- return store->begin();
- }
-
- typename std::vector<T>::const_iterator storage_end() const
- {
- return store->end();
- }
-
- public:
- // Copy ctor absent, default semantics is OK.
- // Assignment operator absent, default semantics is OK.
- // CONSIDER: not sure that assignment to 'index' is correct.
-
- reference operator[](const key_type& v) const {
- typename property_traits<IndexMap>::value_type i = get(index, v);
- if (static_cast<unsigned>(i) >= store->size()) {
- store->resize(i + 1, T());
- }
- return (*store)[i];
- }
- private:
- // Conceptually, we have a vector of infinite size. For practical
- // purposes, we start with an empty vector and grow it as needed.
- // Note that we cannot store pointer to vector here -- we cannot
- // store pointer to data, because if copy of property map resizes
- // the vector, the pointer to data will be invalidated.
- // I wonder if class 'pmap_ref' is simply needed.
- shared_ptr< std::vector<T> > store;
- IndexMap index;
- };
-
- template<typename T, typename IndexMap>
- vector_property_map<T, IndexMap>
- make_vector_property_map(IndexMap index)
- {
- return vector_property_map<T, IndexMap>(index);
- }
-}
-
-#endif
+++ /dev/null
-// Boost version.hpp configuration header file ------------------------------//
-
-// (C) Copyright John maddock 1999. Distributed under the 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/config for documentation
-
-#ifndef BOOST_VERSION_HPP
-#define BOOST_VERSION_HPP
-
-//
-// Caution, this is the only boost header that is guarenteed
-// to change with every boost release, including this header
-// will cause a recompile every time a new boost version is
-// released.
-//
-// BOOST_VERSION % 100 is the sub-minor version
-// BOOST_VERSION / 100 % 1000 is the minor version
-// BOOST_VERSION / 100000 is the major version
-
-#define BOOST_VERSION 103301
-
-//
-// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
-// but as a *string* in the form "x_y" where x is the major version
-// number and y is the minor version number. This is used by
-// <config/auto_link.hpp> to select which library version to link to.
-
-#define BOOST_LIB_VERSION "1_33_1"
-
-#endif
-
-
-
+++ /dev/null
-// Boost.Signals library
-
-// Copyright Douglas Gregor 2001-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)
-
-// For more information, see http://www.boost.org/libs/signals
-
-#ifndef BOOST_VISIT_EACH_HPP
-#define BOOST_VISIT_EACH_HPP
-
-#include <boost/config.hpp>
-
-namespace boost {
- template<typename Visitor, typename T>
- inline void visit_each(Visitor& visitor, const T& t, long)
- {
- visitor(t);
- }
-
- template<typename Visitor, typename T>
- inline void visit_each(Visitor& visitor, const T& t)
- {
- visit_each(visitor, t, 0);
- }
-}
-
-#endif // BOOST_VISIT_EACH_HPP
+++ /dev/null
-/*=============================================================================
- Boost.Wave: A Standard compliant C++ preprocessor library
-
- http://www.boost.org/
-
- Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost
- Software License, Version 1.0. (See accompanying file
- LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-#if !defined(WAVE_HPP_DCA0EA51_EF5B_4BF1_88A8_461DBC5F292B_INCLUDED)
-#define WAVE_HPP_DCA0EA51_EF5B_4BF1_88A8_461DBC5F292B_INCLUDED
-
-#include <boost/wave/wave_config.hpp>
-#include <boost/wave/cpp_exceptions.hpp>
-#include <boost/wave/cpplexer/cpplexer_exceptions.hpp>
-
-#include <boost/wave/token_ids.hpp>
-#include <boost/wave/cpp_context.hpp>
-
-#endif // !defined(WAVE_HPP_DCA0EA51_EF5B_4BF1_88A8_461DBC5F292B_INCLUDED)
+++ /dev/null
-#ifndef BOOST_WEAK_PTR_HPP_INCLUDED
-#define BOOST_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 <boost/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>
- weak_ptr(weak_ptr<Y> const & r): pn(r.pn) // never throws
- {
- px = r.lock().get();
- }
-
- template<class Y>
- weak_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
- {
- }
-
-#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
-
- template<class Y>
- weak_ptr & operator=(weak_ptr<Y> const & r) // never throws
- {
- px = r.lock().get();
- pn = r.pn;
- return *this;
- }
-
- 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
- {
-#if defined(BOOST_HAS_THREADS)
-
- // optimization: avoid throw overhead
- if(expired())
- {
- return shared_ptr<element_type>();
- }
-
- try
- {
- return shared_ptr<element_type>(*this);
- }
- catch(bad_weak_ptr const &)
- {
- // Q: how can we get here?
- // A: another thread may have invalidated r after the use_count test above.
- return shared_ptr<element_type>();
- }
-
-#else
-
- // optimization: avoid try/catch overhead when single threaded
- return expired()? shared_ptr<element_type>(): shared_ptr<element_type>(*this);
-
-#endif
- }
-
- long use_count() const // never throws
- {
- return pn.use_count();
- }
-
- bool expired() const // never throws
- {
- return pn.use_count() == 0;
- }
-
- 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, 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
- 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);
-}
-
-// deprecated, provided for backward compatibility
-template<class T> shared_ptr<T> make_shared(weak_ptr<T> const & r)
-{
- return r.lock();
-}
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef BOOST_WEAK_PTR_HPP_INCLUDED